├── MANIFEST.in ├── demo.gif ├── auth0_component ├── .DS_Store ├── frontend │ ├── vite.config.js │ ├── index.html │ ├── .gitignore │ ├── package.json │ ├── style.css │ ├── main.js │ └── package-lock.json └── __init__.py ├── .gitignore ├── .github └── workflows │ └── main.yml ├── test.py ├── setup.py ├── LICENSE └── README.md /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include auth0_component/frontend/dist * 2 | -------------------------------------------------------------------------------- /demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradbez/streamlit-auth0/HEAD/demo.gif -------------------------------------------------------------------------------- /auth0_component/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradbez/streamlit-auth0/HEAD/auth0_component/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | venv 2 | .env 3 | node_modules 4 | __pycache__ 5 | dist 6 | streamlit_auth0_component.egg-info 7 | build/ 8 | dist/ -------------------------------------------------------------------------------- /auth0_component/frontend/vite.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | server: { 3 | port: 3000 4 | }, 5 | base: './' 6 | } -------------------------------------------------------------------------------- /auth0_component/frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | branches: 4 | - main 5 | pull_request: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Deploy Pypi 14 | uses: remorses/pypi@v3 15 | with: 16 | username: __token__ 17 | password: ${{ secrets.PYPI_API_TOKEN }} 18 | -------------------------------------------------------------------------------- /auth0_component/frontend/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /auth0_component/frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frontend", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "devDependencies": { 12 | "vite": "^3.1.0" 13 | }, 14 | "dependencies": { 15 | "@auth0/auth0-spa-js": "^1.22.4", 16 | "streamlit-component-lib": "^1.4.0", 17 | "toastify-js": "^1.12.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | from auth0_component import login_button 2 | import streamlit as st 3 | from dotenv import load_dotenv 4 | import os 5 | load_dotenv() 6 | 7 | clientId = os.environ['clientId'] 8 | domain = os.environ['domain'] 9 | 10 | st.title('Welcome to Auth0-Streamlit') 11 | 12 | with st.echo(): 13 | user_info = login_button(clientId = clientId, domain = domain) 14 | if user_info: 15 | st.write(f'Hi {user_info["nickname"]}') 16 | # st.write(user_info) # some private information here 17 | 18 | if not user_info: 19 | st.write("Please login to continue") 20 | -------------------------------------------------------------------------------- /auth0_component/frontend/style.css: -------------------------------------------------------------------------------- 1 | button { 2 | cursor: pointer; 3 | border: 0; 4 | border-radius: 4px; 5 | font-weight: 600; 6 | margin: 0; 7 | width: 100%; 8 | padding: 10px 0; 9 | /* box-shadow: 0 0 20px rgba(104, 85, 224, 0.2); */ 10 | transition: 0.4s; 11 | } 12 | 13 | .log { 14 | color: var(--text-color); 15 | background-color: var(--background-color); 16 | border: 1px solid var(--primary-color); 17 | } 18 | 19 | button:hover { 20 | color: white; 21 | width:; 22 | /* box-shadow: 0 0 20px rgba(104, 85, 224, 0.6); */ 23 | background-color: var(--primary-color); 24 | } 25 | 26 | 27 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup( 4 | name="streamlit-auth0-component", 5 | version="0.1.5", 6 | author="", 7 | author_email="", 8 | description="", 9 | long_description="", 10 | long_description_content_type="text/plain", 11 | url="", 12 | packages=setuptools.find_packages(), 13 | include_package_data=True, 14 | classifiers=[], 15 | python_requires=">=3.6", 16 | install_requires=[ 17 | # By definition, a Custom Component depends on Streamlit. 18 | # If your component has other Python dependencies, list 19 | # them here. 20 | "streamlit >= 0.63", 21 | "python-jose == 3.3.0" 22 | ], 23 | ) 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018-2021 Streamlit Inc. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Welcome to Auth0-Streamlit 2 | 3 | **The fastest way to provide comprehensive login inside Streamlit** 4 | 5 | ![Example of Streamlit-Auth0|635x380](demo.gif?raw=true) 6 | 7 | ## Installation 8 | `pip install streamlit-auth0-component` 9 | 10 | ## Setup 11 | 12 | - Register for Auth0 13 | - Create a Single Page Application and navigate to the "settings" tab 14 | - set your callback url's to `http://localhost:8501/component/auth0_component.login_button/index.html` assuming you're running on localhost or `http://YOUR_DOMAIN/component/auth0_component.login_button/index.html` if you're deploying 15 | - Copy `client_id` and `domain` from this page 16 | - Follow example below 17 | 18 | ## An example 19 | On Auth0 website start a "Single Page Web Application" and copy your client-id / domain (of form xxxx.us.auth0.com) into code below. 20 | 21 | ``` 22 | from auth0_component import login_button 23 | import streamlit as st 24 | 25 | clientId = "...." 26 | domain = "...." 27 | 28 | user_info = login_button(clientId, domain = domain) 29 | st.write(user_info) 30 | ``` 31 | 32 | `user_info` will now contain your user's information 33 | 34 | 35 | ## Todo 36 | 37 | - Pass all info through JWT, at the moment the `sub` field is the only field assing through verification 38 | - Test with other providers, only Google tested 39 | 40 | 41 | 42 | ## Deploy 43 | 44 | - `Change version in setup.py` 45 | - `cd auth0_component/frontend/ && npm run build && cd .. && cd .. && rm -rf dist/* && python setup.py sdist bdist_wheel` 46 | - `twine upload dist/*` -------------------------------------------------------------------------------- /auth0_component/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | import streamlit.components.v1 as components 4 | 5 | _RELEASE = False 6 | _RELEASE = True 7 | 8 | 9 | if not _RELEASE: 10 | _login_button = components.declare_component( 11 | "login_button", 12 | url="http://localhost:3000", # vite dev server port 13 | ) 14 | else: 15 | parent_dir = os.path.dirname(os.path.abspath(__file__)) 16 | build_dir = os.path.join(parent_dir, "frontend/dist") 17 | _login_button = components.declare_component("login_button", path=build_dir) 18 | 19 | 20 | import json 21 | from six.moves.urllib.request import urlopen 22 | from functools import wraps 23 | from jose import jwt 24 | 25 | def getVerifiedSubFromToken(token, domain): 26 | domain = "https://"+domain 27 | if not re.match(r".*\.auth0\.com$", domain): 28 | print('domain should end with ".XX.auth0.com" (no trailing slash)') 29 | raise ValueError 30 | jsonurl = urlopen(domain+"/.well-known/jwks.json") 31 | jwks = json.loads(jsonurl.read()) 32 | unverified_header = jwt.get_unverified_header(token) 33 | rsa_key = {} 34 | for key in jwks["keys"]: 35 | if key["kid"] == unverified_header["kid"]: 36 | rsa_key = { 37 | "kty": key["kty"], 38 | "kid": key["kid"], 39 | "use": key["use"], 40 | "n": key["n"], 41 | "e": key["e"] 42 | } 43 | if rsa_key: 44 | try: 45 | payload = jwt.decode( 46 | token, 47 | rsa_key, 48 | algorithms=["RS256"], 49 | audience=domain+"/api/v2/", 50 | issuer=domain+'/' 51 | ) 52 | except jwt.ExpiredSignatureError: 53 | raise 54 | except jwt.JWTClaimsError: 55 | raise 56 | except Exception: 57 | raise 58 | 59 | return payload['sub'] 60 | 61 | def login_button(clientId, domain,key=None, **kwargs): 62 | """Create a new instance of "login_button". 63 | Parameters 64 | ---------- 65 | clientId: str 66 | client_id per auth0 config on your Applications / Settings page 67 | 68 | domain: str 69 | domain per auth0 config on your Applications / Settings page in the form dev-xxxx.xx.auth0.com 70 | key: str or None 71 | An optional key that uniquely identifies this component. If this is 72 | None, and the component's arguments are changed, the component will 73 | be re-mounted in the Streamlit frontend and lose its current state. 74 | Returns 75 | ------- 76 | dict 77 | User info 78 | """ 79 | 80 | user_info = _login_button(client_id=clientId, domain = domain, key=key, default=0) 81 | if not user_info: 82 | return False 83 | elif isAuth(response = user_info, domain = domain): 84 | return user_info 85 | else: 86 | print('Auth failed: invalid token') 87 | raise 88 | 89 | def isAuth(response, domain): 90 | return getVerifiedSubFromToken(token = response['token'], domain=domain) == response['sub'] 91 | 92 | if not _RELEASE: 93 | import streamlit as st 94 | from dotenv import load_dotenv 95 | import os 96 | load_dotenv() 97 | 98 | clientId = os.environ['clientId'] 99 | domain = os.environ['domain'] 100 | st.subheader("Login component") 101 | user_info = login_button(clientId, domain = domain) 102 | # user_info = login_button(clientId = "...", domain = "...") 103 | st.write('User info') 104 | st.write(user_info) 105 | if st.button('rerun'): 106 | st.experimental_rerun() 107 | -------------------------------------------------------------------------------- /auth0_component/frontend/main.js: -------------------------------------------------------------------------------- 1 | import { Streamlit } from "streamlit-component-lib" 2 | import createAuth0Client from '@auth0/auth0-spa-js'; 3 | import Toastify from 'toastify-js' 4 | import "toastify-js/src/toastify.css" 5 | import "./style.css" 6 | 7 | const div = document.body.appendChild(document.createElement("div")) 8 | const button = div.appendChild(document.createElement("button")) 9 | button.className = "log" 10 | button.textContent = "Login" 11 | 12 | // set flex collumn so the error message appears under the button 13 | div.style = "display: flex; flex-direction: column; color: rgb(104, 85, 224); font-weight: 600; margin: 0; padding: 10px" 14 | const errorNode = div.appendChild(document.createTextNode("")) 15 | 16 | // Global vars 17 | let client_id 18 | let domain 19 | let auth0 20 | 21 | const logout = async () => { 22 | auth0.logout({returnTo: getOriginUrl()}) 23 | button.textContent = "Login" 24 | button.removeEventListener('click', logout) 25 | button.addEventListener('click', login) 26 | } 27 | 28 | const login = async () => { 29 | button.textContent = 'working...' 30 | console.log('Callback urls set to: ', getOriginUrl()) 31 | auth0 = await createAuth0Client({ 32 | domain: domain, 33 | client_id: client_id, 34 | redirect_uri: getOriginUrl(), 35 | audience:`https://${domain}/api/v2/`, 36 | useRefreshTokens: true, 37 | cacheLocation: "localstorage", 38 | }); 39 | try{ 40 | await auth0.loginWithPopup(); 41 | errorNode.textContent = '' 42 | } 43 | catch(err){ 44 | console.log(err) 45 | errorNode.textContent = `Popup blocked, please try again or enable popups` + String.fromCharCode(160) 46 | return 47 | } 48 | const user = await auth0.getUser(); 49 | console.log(user) 50 | console.log({ 51 | // return getAccessTokenWithPopup({ 52 | audience:`https://${domain}/api/v2/`, 53 | scope: "read:current_user", 54 | }) 55 | let token = false 56 | 57 | try{ 58 | token = await auth0.getTokenSilently({ 59 | // return getAccessTokenWithPopup({ 60 | audience:`https://${domain}/api/v2/`, 61 | // scope: "read:current_user", 62 | }); 63 | } 64 | catch(error){ 65 | if (error.error === 'consent_required' || error.error === 'login_required'){ 66 | console.log('asking user for permission to their profile') 67 | token = await auth0.getTokenWithPopup({ 68 | audience:`https://${domain}/api/v2/`, 69 | scope: "read:current_user", 70 | }); 71 | console.log(token) 72 | } 73 | else{console.log(error)} 74 | } 75 | 76 | let userCopy = JSON.parse(JSON.stringify(user)); 77 | userCopy.token = token 78 | console.log(userCopy); 79 | Streamlit.setComponentValue(userCopy) 80 | button.textContent = "Logout" 81 | button.removeEventListener('click', login) 82 | button.addEventListener('click', logout) 83 | } 84 | 85 | button.onclick = login 86 | 87 | function onRender(event) { 88 | const data = event.detail 89 | 90 | client_id = data.args["client_id"] 91 | domain = data.args["domain"] 92 | 93 | Streamlit.setFrameHeight() 94 | } 95 | 96 | 97 | Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, onRender) 98 | Streamlit.setComponentReady() 99 | 100 | const getOriginUrl = () => { 101 | // Detect if you're inside an iframe 102 | if (window.parent !== window) { 103 | const currentIframeHref = new URL(document.location.href) 104 | const urlOrigin = currentIframeHref.origin 105 | const urlFilePath = decodeURIComponent(currentIframeHref.pathname) 106 | // Take referrer as origin 107 | return urlOrigin + urlFilePath 108 | } else { 109 | return window.location.origin 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /auth0_component/frontend/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frontend", 3 | "version": "0.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "frontend", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "@auth0/auth0-spa-js": "^1.22.4", 12 | "streamlit-component-lib": "^1.4.0", 13 | "toastify-js": "^1.12.0" 14 | }, 15 | "devDependencies": { 16 | "vite": "^3.1.0" 17 | } 18 | }, 19 | "node_modules/@auth0/auth0-spa-js": { 20 | "version": "1.22.4", 21 | "resolved": "https://registry.npmjs.org/@auth0/auth0-spa-js/-/auth0-spa-js-1.22.4.tgz", 22 | "integrity": "sha512-iOboSV+aUsExV1onKvGKEqi626sjJt+61c3EvA4mkn9RM7RV9RMjPI+cInNFHWjwAd2Sdi3LqBj6/MfcHh69dg==", 23 | "dependencies": { 24 | "abortcontroller-polyfill": "^1.7.3", 25 | "browser-tabs-lock": "^1.2.15", 26 | "core-js": "^3.24.0", 27 | "es-cookie": "~1.3.2", 28 | "fast-text-encoding": "^1.0.4", 29 | "promise-polyfill": "^8.2.3", 30 | "unfetch": "^4.2.0" 31 | } 32 | }, 33 | "node_modules/@esbuild/android-arm": { 34 | "version": "0.15.10", 35 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.10.tgz", 36 | "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", 37 | "cpu": [ 38 | "arm" 39 | ], 40 | "dev": true, 41 | "optional": true, 42 | "os": [ 43 | "android" 44 | ], 45 | "engines": { 46 | "node": ">=12" 47 | } 48 | }, 49 | "node_modules/@esbuild/linux-loong64": { 50 | "version": "0.15.10", 51 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", 52 | "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", 53 | "cpu": [ 54 | "loong64" 55 | ], 56 | "dev": true, 57 | "optional": true, 58 | "os": [ 59 | "linux" 60 | ], 61 | "engines": { 62 | "node": ">=12" 63 | } 64 | }, 65 | "node_modules/@types/flatbuffers": { 66 | "version": "1.10.0", 67 | "resolved": "https://registry.npmjs.org/@types/flatbuffers/-/flatbuffers-1.10.0.tgz", 68 | "integrity": "sha512-7btbphLrKvo5yl/5CC2OCxUSMx1wV1wvGT1qDXkSt7yi00/YW7E8k6qzXqJHsp+WU0eoG7r6MTQQXI9lIvd0qA==" 69 | }, 70 | "node_modules/@types/node": { 71 | "version": "12.20.55", 72 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", 73 | "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" 74 | }, 75 | "node_modules/@types/text-encoding-utf-8": { 76 | "version": "1.0.2", 77 | "resolved": "https://registry.npmjs.org/@types/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", 78 | "integrity": "sha512-AQ6zewa0ucLJvtUi5HsErbOFKAcQfRLt9zFLlUOvcXBy2G36a+ZDpCHSGdzJVUD8aNURtIjh9aSjCStNMRCcRQ==" 79 | }, 80 | "node_modules/abortcontroller-polyfill": { 81 | "version": "1.7.3", 82 | "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz", 83 | "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==" 84 | }, 85 | "node_modules/ansi-styles": { 86 | "version": "3.2.1", 87 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 88 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 89 | "dependencies": { 90 | "color-convert": "^1.9.0" 91 | }, 92 | "engines": { 93 | "node": ">=4" 94 | } 95 | }, 96 | "node_modules/apache-arrow": { 97 | "version": "0.17.0", 98 | "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-0.17.0.tgz", 99 | "integrity": "sha512-cbgSx/tzGgnC1qeUySXnAsSsoxhDykNINqr1D3U5pRwf0/Q0ztVccV3/VRW6gUR+lcOFawk6FtyYwmU+KjglbQ==", 100 | "dependencies": { 101 | "@types/flatbuffers": "^1.9.1", 102 | "@types/node": "^12.0.4", 103 | "@types/text-encoding-utf-8": "^1.0.1", 104 | "command-line-args": "5.0.2", 105 | "command-line-usage": "5.0.5", 106 | "flatbuffers": "1.11.0", 107 | "json-bignum": "^0.0.3", 108 | "pad-left": "^2.1.0", 109 | "text-encoding-utf-8": "^1.0.2", 110 | "tslib": "^1.9.3" 111 | }, 112 | "bin": { 113 | "arrow2csv": "bin/arrow2csv.js" 114 | } 115 | }, 116 | "node_modules/argv-tools": { 117 | "version": "0.1.2", 118 | "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.2.tgz", 119 | "integrity": "sha512-wxqoymY0BEu9NblZVQiOTOAiJUjPhaa/kbNMjC2h6bnrmUSgnxKgWJo3lzXvi3bHJRwXyqK/dHzMlZVRT89Cxg==", 120 | "dependencies": { 121 | "array-back": "^2.0.0", 122 | "find-replace": "^2.0.1" 123 | }, 124 | "engines": { 125 | "node": ">=4.0.0" 126 | } 127 | }, 128 | "node_modules/array-back": { 129 | "version": "2.0.0", 130 | "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", 131 | "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", 132 | "dependencies": { 133 | "typical": "^2.6.1" 134 | }, 135 | "engines": { 136 | "node": ">=4" 137 | } 138 | }, 139 | "node_modules/browser-tabs-lock": { 140 | "version": "1.2.15", 141 | "resolved": "https://registry.npmjs.org/browser-tabs-lock/-/browser-tabs-lock-1.2.15.tgz", 142 | "integrity": "sha512-J8K9vdivK0Di+b8SBdE7EZxDr88TnATing7XoLw6+nFkXMQ6sVBh92K3NQvZlZU91AIkFRi0w3sztk5Z+vsswA==", 143 | "hasInstallScript": true, 144 | "dependencies": { 145 | "lodash": ">=4.17.21" 146 | } 147 | }, 148 | "node_modules/chalk": { 149 | "version": "2.4.2", 150 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 151 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 152 | "dependencies": { 153 | "ansi-styles": "^3.2.1", 154 | "escape-string-regexp": "^1.0.5", 155 | "supports-color": "^5.3.0" 156 | }, 157 | "engines": { 158 | "node": ">=4" 159 | } 160 | }, 161 | "node_modules/color-convert": { 162 | "version": "1.9.3", 163 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 164 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 165 | "dependencies": { 166 | "color-name": "1.1.3" 167 | } 168 | }, 169 | "node_modules/color-name": { 170 | "version": "1.1.3", 171 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 172 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 173 | }, 174 | "node_modules/command-line-args": { 175 | "version": "5.0.2", 176 | "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", 177 | "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", 178 | "dependencies": { 179 | "argv-tools": "^0.1.1", 180 | "array-back": "^2.0.0", 181 | "find-replace": "^2.0.1", 182 | "lodash.camelcase": "^4.3.0", 183 | "typical": "^2.6.1" 184 | }, 185 | "engines": { 186 | "node": ">=4.0.0" 187 | } 188 | }, 189 | "node_modules/command-line-usage": { 190 | "version": "5.0.5", 191 | "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz", 192 | "integrity": "sha512-d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==", 193 | "dependencies": { 194 | "array-back": "^2.0.0", 195 | "chalk": "^2.4.1", 196 | "table-layout": "^0.4.3", 197 | "typical": "^2.6.1" 198 | }, 199 | "engines": { 200 | "node": ">=4.0.0" 201 | } 202 | }, 203 | "node_modules/core-js": { 204 | "version": "3.25.5", 205 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz", 206 | "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==", 207 | "hasInstallScript": true, 208 | "funding": { 209 | "type": "opencollective", 210 | "url": "https://opencollective.com/core-js" 211 | } 212 | }, 213 | "node_modules/deep-extend": { 214 | "version": "0.6.0", 215 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 216 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 217 | "engines": { 218 | "node": ">=4.0.0" 219 | } 220 | }, 221 | "node_modules/es-cookie": { 222 | "version": "1.3.2", 223 | "resolved": "https://registry.npmjs.org/es-cookie/-/es-cookie-1.3.2.tgz", 224 | "integrity": "sha512-UTlYYhXGLOy05P/vKVT2Ui7WtC7NiRzGtJyAKKn32g5Gvcjn7KAClLPWlipCtxIus934dFg9o9jXiBL0nP+t9Q==" 225 | }, 226 | "node_modules/esbuild": { 227 | "version": "0.15.10", 228 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.10.tgz", 229 | "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", 230 | "dev": true, 231 | "hasInstallScript": true, 232 | "bin": { 233 | "esbuild": "bin/esbuild" 234 | }, 235 | "engines": { 236 | "node": ">=12" 237 | }, 238 | "optionalDependencies": { 239 | "@esbuild/android-arm": "0.15.10", 240 | "@esbuild/linux-loong64": "0.15.10", 241 | "esbuild-android-64": "0.15.10", 242 | "esbuild-android-arm64": "0.15.10", 243 | "esbuild-darwin-64": "0.15.10", 244 | "esbuild-darwin-arm64": "0.15.10", 245 | "esbuild-freebsd-64": "0.15.10", 246 | "esbuild-freebsd-arm64": "0.15.10", 247 | "esbuild-linux-32": "0.15.10", 248 | "esbuild-linux-64": "0.15.10", 249 | "esbuild-linux-arm": "0.15.10", 250 | "esbuild-linux-arm64": "0.15.10", 251 | "esbuild-linux-mips64le": "0.15.10", 252 | "esbuild-linux-ppc64le": "0.15.10", 253 | "esbuild-linux-riscv64": "0.15.10", 254 | "esbuild-linux-s390x": "0.15.10", 255 | "esbuild-netbsd-64": "0.15.10", 256 | "esbuild-openbsd-64": "0.15.10", 257 | "esbuild-sunos-64": "0.15.10", 258 | "esbuild-windows-32": "0.15.10", 259 | "esbuild-windows-64": "0.15.10", 260 | "esbuild-windows-arm64": "0.15.10" 261 | } 262 | }, 263 | "node_modules/esbuild-android-64": { 264 | "version": "0.15.10", 265 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", 266 | "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", 267 | "cpu": [ 268 | "x64" 269 | ], 270 | "dev": true, 271 | "optional": true, 272 | "os": [ 273 | "android" 274 | ], 275 | "engines": { 276 | "node": ">=12" 277 | } 278 | }, 279 | "node_modules/esbuild-android-arm64": { 280 | "version": "0.15.10", 281 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", 282 | "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", 283 | "cpu": [ 284 | "arm64" 285 | ], 286 | "dev": true, 287 | "optional": true, 288 | "os": [ 289 | "android" 290 | ], 291 | "engines": { 292 | "node": ">=12" 293 | } 294 | }, 295 | "node_modules/esbuild-darwin-64": { 296 | "version": "0.15.10", 297 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", 298 | "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", 299 | "cpu": [ 300 | "x64" 301 | ], 302 | "dev": true, 303 | "optional": true, 304 | "os": [ 305 | "darwin" 306 | ], 307 | "engines": { 308 | "node": ">=12" 309 | } 310 | }, 311 | "node_modules/esbuild-darwin-arm64": { 312 | "version": "0.15.10", 313 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", 314 | "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", 315 | "cpu": [ 316 | "arm64" 317 | ], 318 | "dev": true, 319 | "optional": true, 320 | "os": [ 321 | "darwin" 322 | ], 323 | "engines": { 324 | "node": ">=12" 325 | } 326 | }, 327 | "node_modules/esbuild-freebsd-64": { 328 | "version": "0.15.10", 329 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", 330 | "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", 331 | "cpu": [ 332 | "x64" 333 | ], 334 | "dev": true, 335 | "optional": true, 336 | "os": [ 337 | "freebsd" 338 | ], 339 | "engines": { 340 | "node": ">=12" 341 | } 342 | }, 343 | "node_modules/esbuild-freebsd-arm64": { 344 | "version": "0.15.10", 345 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", 346 | "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", 347 | "cpu": [ 348 | "arm64" 349 | ], 350 | "dev": true, 351 | "optional": true, 352 | "os": [ 353 | "freebsd" 354 | ], 355 | "engines": { 356 | "node": ">=12" 357 | } 358 | }, 359 | "node_modules/esbuild-linux-32": { 360 | "version": "0.15.10", 361 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", 362 | "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", 363 | "cpu": [ 364 | "ia32" 365 | ], 366 | "dev": true, 367 | "optional": true, 368 | "os": [ 369 | "linux" 370 | ], 371 | "engines": { 372 | "node": ">=12" 373 | } 374 | }, 375 | "node_modules/esbuild-linux-64": { 376 | "version": "0.15.10", 377 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", 378 | "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", 379 | "cpu": [ 380 | "x64" 381 | ], 382 | "dev": true, 383 | "optional": true, 384 | "os": [ 385 | "linux" 386 | ], 387 | "engines": { 388 | "node": ">=12" 389 | } 390 | }, 391 | "node_modules/esbuild-linux-arm": { 392 | "version": "0.15.10", 393 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", 394 | "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", 395 | "cpu": [ 396 | "arm" 397 | ], 398 | "dev": true, 399 | "optional": true, 400 | "os": [ 401 | "linux" 402 | ], 403 | "engines": { 404 | "node": ">=12" 405 | } 406 | }, 407 | "node_modules/esbuild-linux-arm64": { 408 | "version": "0.15.10", 409 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", 410 | "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", 411 | "cpu": [ 412 | "arm64" 413 | ], 414 | "dev": true, 415 | "optional": true, 416 | "os": [ 417 | "linux" 418 | ], 419 | "engines": { 420 | "node": ">=12" 421 | } 422 | }, 423 | "node_modules/esbuild-linux-mips64le": { 424 | "version": "0.15.10", 425 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", 426 | "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", 427 | "cpu": [ 428 | "mips64el" 429 | ], 430 | "dev": true, 431 | "optional": true, 432 | "os": [ 433 | "linux" 434 | ], 435 | "engines": { 436 | "node": ">=12" 437 | } 438 | }, 439 | "node_modules/esbuild-linux-ppc64le": { 440 | "version": "0.15.10", 441 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", 442 | "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", 443 | "cpu": [ 444 | "ppc64" 445 | ], 446 | "dev": true, 447 | "optional": true, 448 | "os": [ 449 | "linux" 450 | ], 451 | "engines": { 452 | "node": ">=12" 453 | } 454 | }, 455 | "node_modules/esbuild-linux-riscv64": { 456 | "version": "0.15.10", 457 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", 458 | "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", 459 | "cpu": [ 460 | "riscv64" 461 | ], 462 | "dev": true, 463 | "optional": true, 464 | "os": [ 465 | "linux" 466 | ], 467 | "engines": { 468 | "node": ">=12" 469 | } 470 | }, 471 | "node_modules/esbuild-linux-s390x": { 472 | "version": "0.15.10", 473 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", 474 | "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", 475 | "cpu": [ 476 | "s390x" 477 | ], 478 | "dev": true, 479 | "optional": true, 480 | "os": [ 481 | "linux" 482 | ], 483 | "engines": { 484 | "node": ">=12" 485 | } 486 | }, 487 | "node_modules/esbuild-netbsd-64": { 488 | "version": "0.15.10", 489 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", 490 | "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", 491 | "cpu": [ 492 | "x64" 493 | ], 494 | "dev": true, 495 | "optional": true, 496 | "os": [ 497 | "netbsd" 498 | ], 499 | "engines": { 500 | "node": ">=12" 501 | } 502 | }, 503 | "node_modules/esbuild-openbsd-64": { 504 | "version": "0.15.10", 505 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", 506 | "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", 507 | "cpu": [ 508 | "x64" 509 | ], 510 | "dev": true, 511 | "optional": true, 512 | "os": [ 513 | "openbsd" 514 | ], 515 | "engines": { 516 | "node": ">=12" 517 | } 518 | }, 519 | "node_modules/esbuild-sunos-64": { 520 | "version": "0.15.10", 521 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", 522 | "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", 523 | "cpu": [ 524 | "x64" 525 | ], 526 | "dev": true, 527 | "optional": true, 528 | "os": [ 529 | "sunos" 530 | ], 531 | "engines": { 532 | "node": ">=12" 533 | } 534 | }, 535 | "node_modules/esbuild-windows-32": { 536 | "version": "0.15.10", 537 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", 538 | "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", 539 | "cpu": [ 540 | "ia32" 541 | ], 542 | "dev": true, 543 | "optional": true, 544 | "os": [ 545 | "win32" 546 | ], 547 | "engines": { 548 | "node": ">=12" 549 | } 550 | }, 551 | "node_modules/esbuild-windows-64": { 552 | "version": "0.15.10", 553 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", 554 | "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", 555 | "cpu": [ 556 | "x64" 557 | ], 558 | "dev": true, 559 | "optional": true, 560 | "os": [ 561 | "win32" 562 | ], 563 | "engines": { 564 | "node": ">=12" 565 | } 566 | }, 567 | "node_modules/esbuild-windows-arm64": { 568 | "version": "0.15.10", 569 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", 570 | "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", 571 | "cpu": [ 572 | "arm64" 573 | ], 574 | "dev": true, 575 | "optional": true, 576 | "os": [ 577 | "win32" 578 | ], 579 | "engines": { 580 | "node": ">=12" 581 | } 582 | }, 583 | "node_modules/escape-string-regexp": { 584 | "version": "1.0.5", 585 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 586 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 587 | "engines": { 588 | "node": ">=0.8.0" 589 | } 590 | }, 591 | "node_modules/event-target-shim": { 592 | "version": "5.0.1", 593 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 594 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", 595 | "engines": { 596 | "node": ">=6" 597 | } 598 | }, 599 | "node_modules/fast-text-encoding": { 600 | "version": "1.0.6", 601 | "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", 602 | "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" 603 | }, 604 | "node_modules/find-replace": { 605 | "version": "2.0.1", 606 | "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", 607 | "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", 608 | "dependencies": { 609 | "array-back": "^2.0.0", 610 | "test-value": "^3.0.0" 611 | }, 612 | "engines": { 613 | "node": ">=4.0.0" 614 | } 615 | }, 616 | "node_modules/flatbuffers": { 617 | "version": "1.11.0", 618 | "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.11.0.tgz", 619 | "integrity": "sha512-0PqFKtXI4MjxomI7jO4g5XfLPm/15g2R+5WGCHBGYGh0ihQiypnHlJ6bMmkkrAe0GzZ4d7PDAfCONKIPUxNF+A==" 620 | }, 621 | "node_modules/fsevents": { 622 | "version": "2.3.2", 623 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 624 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 625 | "dev": true, 626 | "hasInstallScript": true, 627 | "optional": true, 628 | "os": [ 629 | "darwin" 630 | ], 631 | "engines": { 632 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 633 | } 634 | }, 635 | "node_modules/function-bind": { 636 | "version": "1.1.1", 637 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 638 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 639 | "dev": true 640 | }, 641 | "node_modules/has": { 642 | "version": "1.0.3", 643 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 644 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 645 | "dev": true, 646 | "dependencies": { 647 | "function-bind": "^1.1.1" 648 | }, 649 | "engines": { 650 | "node": ">= 0.4.0" 651 | } 652 | }, 653 | "node_modules/has-flag": { 654 | "version": "3.0.0", 655 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 656 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 657 | "engines": { 658 | "node": ">=4" 659 | } 660 | }, 661 | "node_modules/hoist-non-react-statics": { 662 | "version": "3.3.2", 663 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", 664 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", 665 | "dependencies": { 666 | "react-is": "^16.7.0" 667 | } 668 | }, 669 | "node_modules/is-core-module": { 670 | "version": "2.10.0", 671 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", 672 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", 673 | "dev": true, 674 | "dependencies": { 675 | "has": "^1.0.3" 676 | }, 677 | "funding": { 678 | "url": "https://github.com/sponsors/ljharb" 679 | } 680 | }, 681 | "node_modules/js-tokens": { 682 | "version": "4.0.0", 683 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 684 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 685 | }, 686 | "node_modules/json-bignum": { 687 | "version": "0.0.3", 688 | "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", 689 | "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==", 690 | "engines": { 691 | "node": ">=0.8" 692 | } 693 | }, 694 | "node_modules/lodash": { 695 | "version": "4.17.21", 696 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 697 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 698 | }, 699 | "node_modules/lodash.camelcase": { 700 | "version": "4.3.0", 701 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", 702 | "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" 703 | }, 704 | "node_modules/lodash.padend": { 705 | "version": "4.6.1", 706 | "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", 707 | "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==" 708 | }, 709 | "node_modules/loose-envify": { 710 | "version": "1.4.0", 711 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 712 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 713 | "dependencies": { 714 | "js-tokens": "^3.0.0 || ^4.0.0" 715 | }, 716 | "bin": { 717 | "loose-envify": "cli.js" 718 | } 719 | }, 720 | "node_modules/nanoid": { 721 | "version": "3.3.4", 722 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 723 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 724 | "dev": true, 725 | "bin": { 726 | "nanoid": "bin/nanoid.cjs" 727 | }, 728 | "engines": { 729 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 730 | } 731 | }, 732 | "node_modules/object-assign": { 733 | "version": "4.1.1", 734 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 735 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 736 | "engines": { 737 | "node": ">=0.10.0" 738 | } 739 | }, 740 | "node_modules/pad-left": { 741 | "version": "2.1.0", 742 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", 743 | "integrity": "sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA==", 744 | "dependencies": { 745 | "repeat-string": "^1.5.4" 746 | }, 747 | "engines": { 748 | "node": ">=0.10.0" 749 | } 750 | }, 751 | "node_modules/path-parse": { 752 | "version": "1.0.7", 753 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 754 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 755 | "dev": true 756 | }, 757 | "node_modules/picocolors": { 758 | "version": "1.0.0", 759 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 760 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 761 | "dev": true 762 | }, 763 | "node_modules/postcss": { 764 | "version": "8.4.17", 765 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", 766 | "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", 767 | "dev": true, 768 | "funding": [ 769 | { 770 | "type": "opencollective", 771 | "url": "https://opencollective.com/postcss/" 772 | }, 773 | { 774 | "type": "tidelift", 775 | "url": "https://tidelift.com/funding/github/npm/postcss" 776 | } 777 | ], 778 | "dependencies": { 779 | "nanoid": "^3.3.4", 780 | "picocolors": "^1.0.0", 781 | "source-map-js": "^1.0.2" 782 | }, 783 | "engines": { 784 | "node": "^10 || ^12 || >=14" 785 | } 786 | }, 787 | "node_modules/promise-polyfill": { 788 | "version": "8.2.3", 789 | "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", 790 | "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" 791 | }, 792 | "node_modules/prop-types": { 793 | "version": "15.8.1", 794 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 795 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 796 | "dependencies": { 797 | "loose-envify": "^1.4.0", 798 | "object-assign": "^4.1.1", 799 | "react-is": "^16.13.1" 800 | } 801 | }, 802 | "node_modules/react": { 803 | "version": "16.14.0", 804 | "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", 805 | "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", 806 | "dependencies": { 807 | "loose-envify": "^1.1.0", 808 | "object-assign": "^4.1.1", 809 | "prop-types": "^15.6.2" 810 | }, 811 | "engines": { 812 | "node": ">=0.10.0" 813 | } 814 | }, 815 | "node_modules/react-dom": { 816 | "version": "16.14.0", 817 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", 818 | "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", 819 | "dependencies": { 820 | "loose-envify": "^1.1.0", 821 | "object-assign": "^4.1.1", 822 | "prop-types": "^15.6.2", 823 | "scheduler": "^0.19.1" 824 | }, 825 | "peerDependencies": { 826 | "react": "^16.14.0" 827 | } 828 | }, 829 | "node_modules/react-is": { 830 | "version": "16.13.1", 831 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 832 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 833 | }, 834 | "node_modules/reduce-flatten": { 835 | "version": "1.0.1", 836 | "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", 837 | "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", 838 | "engines": { 839 | "node": ">=0.10.0" 840 | } 841 | }, 842 | "node_modules/repeat-string": { 843 | "version": "1.6.1", 844 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 845 | "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", 846 | "engines": { 847 | "node": ">=0.10" 848 | } 849 | }, 850 | "node_modules/resolve": { 851 | "version": "1.22.1", 852 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 853 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 854 | "dev": true, 855 | "dependencies": { 856 | "is-core-module": "^2.9.0", 857 | "path-parse": "^1.0.7", 858 | "supports-preserve-symlinks-flag": "^1.0.0" 859 | }, 860 | "bin": { 861 | "resolve": "bin/resolve" 862 | }, 863 | "funding": { 864 | "url": "https://github.com/sponsors/ljharb" 865 | } 866 | }, 867 | "node_modules/rollup": { 868 | "version": "2.78.1", 869 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", 870 | "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", 871 | "dev": true, 872 | "bin": { 873 | "rollup": "dist/bin/rollup" 874 | }, 875 | "engines": { 876 | "node": ">=10.0.0" 877 | }, 878 | "optionalDependencies": { 879 | "fsevents": "~2.3.2" 880 | } 881 | }, 882 | "node_modules/scheduler": { 883 | "version": "0.19.1", 884 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", 885 | "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", 886 | "dependencies": { 887 | "loose-envify": "^1.1.0", 888 | "object-assign": "^4.1.1" 889 | } 890 | }, 891 | "node_modules/source-map-js": { 892 | "version": "1.0.2", 893 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 894 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 895 | "dev": true, 896 | "engines": { 897 | "node": ">=0.10.0" 898 | } 899 | }, 900 | "node_modules/streamlit-component-lib": { 901 | "version": "1.4.0", 902 | "resolved": "https://registry.npmjs.org/streamlit-component-lib/-/streamlit-component-lib-1.4.0.tgz", 903 | "integrity": "sha512-8ne67TdvJXuCczzUHp5FR6CxZr9T/ojY+LaNNn8FdXRXIGhVFUocKe84h1vJ5KhnTcI3rIGr7nnVUST1N7gtxA==", 904 | "dependencies": { 905 | "apache-arrow": "^0.17.0", 906 | "event-target-shim": "^5.0.1", 907 | "hoist-non-react-statics": "^3.3.2", 908 | "react": "^16.13.1", 909 | "react-dom": "^16.13.1" 910 | } 911 | }, 912 | "node_modules/supports-color": { 913 | "version": "5.5.0", 914 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 915 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 916 | "dependencies": { 917 | "has-flag": "^3.0.0" 918 | }, 919 | "engines": { 920 | "node": ">=4" 921 | } 922 | }, 923 | "node_modules/supports-preserve-symlinks-flag": { 924 | "version": "1.0.0", 925 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 926 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 927 | "dev": true, 928 | "engines": { 929 | "node": ">= 0.4" 930 | }, 931 | "funding": { 932 | "url": "https://github.com/sponsors/ljharb" 933 | } 934 | }, 935 | "node_modules/table-layout": { 936 | "version": "0.4.5", 937 | "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", 938 | "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", 939 | "dependencies": { 940 | "array-back": "^2.0.0", 941 | "deep-extend": "~0.6.0", 942 | "lodash.padend": "^4.6.1", 943 | "typical": "^2.6.1", 944 | "wordwrapjs": "^3.0.0" 945 | }, 946 | "engines": { 947 | "node": ">=4.0.0" 948 | } 949 | }, 950 | "node_modules/test-value": { 951 | "version": "3.0.0", 952 | "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", 953 | "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", 954 | "dependencies": { 955 | "array-back": "^2.0.0", 956 | "typical": "^2.6.1" 957 | }, 958 | "engines": { 959 | "node": ">=4.0.0" 960 | } 961 | }, 962 | "node_modules/text-encoding-utf-8": { 963 | "version": "1.0.2", 964 | "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", 965 | "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" 966 | }, 967 | "node_modules/toastify-js": { 968 | "version": "1.12.0", 969 | "resolved": "https://registry.npmjs.org/toastify-js/-/toastify-js-1.12.0.tgz", 970 | "integrity": "sha512-HeMHCO9yLPvP9k0apGSdPUWrUbLnxUKNFzgUoZp1PHCLploIX/4DSQ7V8H25ef+h4iO9n0he7ImfcndnN6nDrQ==" 971 | }, 972 | "node_modules/tslib": { 973 | "version": "1.14.1", 974 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 975 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 976 | }, 977 | "node_modules/typical": { 978 | "version": "2.6.1", 979 | "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", 980 | "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==" 981 | }, 982 | "node_modules/unfetch": { 983 | "version": "4.2.0", 984 | "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", 985 | "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" 986 | }, 987 | "node_modules/vite": { 988 | "version": "3.1.4", 989 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.4.tgz", 990 | "integrity": "sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==", 991 | "dev": true, 992 | "dependencies": { 993 | "esbuild": "^0.15.6", 994 | "postcss": "^8.4.16", 995 | "resolve": "^1.22.1", 996 | "rollup": "~2.78.0" 997 | }, 998 | "bin": { 999 | "vite": "bin/vite.js" 1000 | }, 1001 | "engines": { 1002 | "node": "^14.18.0 || >=16.0.0" 1003 | }, 1004 | "optionalDependencies": { 1005 | "fsevents": "~2.3.2" 1006 | }, 1007 | "peerDependencies": { 1008 | "less": "*", 1009 | "sass": "*", 1010 | "stylus": "*", 1011 | "terser": "^5.4.0" 1012 | }, 1013 | "peerDependenciesMeta": { 1014 | "less": { 1015 | "optional": true 1016 | }, 1017 | "sass": { 1018 | "optional": true 1019 | }, 1020 | "stylus": { 1021 | "optional": true 1022 | }, 1023 | "terser": { 1024 | "optional": true 1025 | } 1026 | } 1027 | }, 1028 | "node_modules/wordwrapjs": { 1029 | "version": "3.0.0", 1030 | "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", 1031 | "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", 1032 | "dependencies": { 1033 | "reduce-flatten": "^1.0.1", 1034 | "typical": "^2.6.1" 1035 | }, 1036 | "engines": { 1037 | "node": ">=4.0.0" 1038 | } 1039 | } 1040 | }, 1041 | "dependencies": { 1042 | "@auth0/auth0-spa-js": { 1043 | "version": "1.22.4", 1044 | "resolved": "https://registry.npmjs.org/@auth0/auth0-spa-js/-/auth0-spa-js-1.22.4.tgz", 1045 | "integrity": "sha512-iOboSV+aUsExV1onKvGKEqi626sjJt+61c3EvA4mkn9RM7RV9RMjPI+cInNFHWjwAd2Sdi3LqBj6/MfcHh69dg==", 1046 | "requires": { 1047 | "abortcontroller-polyfill": "^1.7.3", 1048 | "browser-tabs-lock": "^1.2.15", 1049 | "core-js": "^3.24.0", 1050 | "es-cookie": "~1.3.2", 1051 | "fast-text-encoding": "^1.0.4", 1052 | "promise-polyfill": "^8.2.3", 1053 | "unfetch": "^4.2.0" 1054 | } 1055 | }, 1056 | "@esbuild/android-arm": { 1057 | "version": "0.15.10", 1058 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.10.tgz", 1059 | "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", 1060 | "dev": true, 1061 | "optional": true 1062 | }, 1063 | "@esbuild/linux-loong64": { 1064 | "version": "0.15.10", 1065 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", 1066 | "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", 1067 | "dev": true, 1068 | "optional": true 1069 | }, 1070 | "@types/flatbuffers": { 1071 | "version": "1.10.0", 1072 | "resolved": "https://registry.npmjs.org/@types/flatbuffers/-/flatbuffers-1.10.0.tgz", 1073 | "integrity": "sha512-7btbphLrKvo5yl/5CC2OCxUSMx1wV1wvGT1qDXkSt7yi00/YW7E8k6qzXqJHsp+WU0eoG7r6MTQQXI9lIvd0qA==" 1074 | }, 1075 | "@types/node": { 1076 | "version": "12.20.55", 1077 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", 1078 | "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" 1079 | }, 1080 | "@types/text-encoding-utf-8": { 1081 | "version": "1.0.2", 1082 | "resolved": "https://registry.npmjs.org/@types/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", 1083 | "integrity": "sha512-AQ6zewa0ucLJvtUi5HsErbOFKAcQfRLt9zFLlUOvcXBy2G36a+ZDpCHSGdzJVUD8aNURtIjh9aSjCStNMRCcRQ==" 1084 | }, 1085 | "abortcontroller-polyfill": { 1086 | "version": "1.7.3", 1087 | "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz", 1088 | "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==" 1089 | }, 1090 | "ansi-styles": { 1091 | "version": "3.2.1", 1092 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1093 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1094 | "requires": { 1095 | "color-convert": "^1.9.0" 1096 | } 1097 | }, 1098 | "apache-arrow": { 1099 | "version": "0.17.0", 1100 | "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-0.17.0.tgz", 1101 | "integrity": "sha512-cbgSx/tzGgnC1qeUySXnAsSsoxhDykNINqr1D3U5pRwf0/Q0ztVccV3/VRW6gUR+lcOFawk6FtyYwmU+KjglbQ==", 1102 | "requires": { 1103 | "@types/flatbuffers": "^1.9.1", 1104 | "@types/node": "^12.0.4", 1105 | "@types/text-encoding-utf-8": "^1.0.1", 1106 | "command-line-args": "5.0.2", 1107 | "command-line-usage": "5.0.5", 1108 | "flatbuffers": "1.11.0", 1109 | "json-bignum": "^0.0.3", 1110 | "pad-left": "^2.1.0", 1111 | "text-encoding-utf-8": "^1.0.2", 1112 | "tslib": "^1.9.3" 1113 | } 1114 | }, 1115 | "argv-tools": { 1116 | "version": "0.1.2", 1117 | "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.2.tgz", 1118 | "integrity": "sha512-wxqoymY0BEu9NblZVQiOTOAiJUjPhaa/kbNMjC2h6bnrmUSgnxKgWJo3lzXvi3bHJRwXyqK/dHzMlZVRT89Cxg==", 1119 | "requires": { 1120 | "array-back": "^2.0.0", 1121 | "find-replace": "^2.0.1" 1122 | } 1123 | }, 1124 | "array-back": { 1125 | "version": "2.0.0", 1126 | "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", 1127 | "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", 1128 | "requires": { 1129 | "typical": "^2.6.1" 1130 | } 1131 | }, 1132 | "browser-tabs-lock": { 1133 | "version": "1.2.15", 1134 | "resolved": "https://registry.npmjs.org/browser-tabs-lock/-/browser-tabs-lock-1.2.15.tgz", 1135 | "integrity": "sha512-J8K9vdivK0Di+b8SBdE7EZxDr88TnATing7XoLw6+nFkXMQ6sVBh92K3NQvZlZU91AIkFRi0w3sztk5Z+vsswA==", 1136 | "requires": { 1137 | "lodash": ">=4.17.21" 1138 | } 1139 | }, 1140 | "chalk": { 1141 | "version": "2.4.2", 1142 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1143 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1144 | "requires": { 1145 | "ansi-styles": "^3.2.1", 1146 | "escape-string-regexp": "^1.0.5", 1147 | "supports-color": "^5.3.0" 1148 | } 1149 | }, 1150 | "color-convert": { 1151 | "version": "1.9.3", 1152 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1153 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1154 | "requires": { 1155 | "color-name": "1.1.3" 1156 | } 1157 | }, 1158 | "color-name": { 1159 | "version": "1.1.3", 1160 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1161 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 1162 | }, 1163 | "command-line-args": { 1164 | "version": "5.0.2", 1165 | "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", 1166 | "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", 1167 | "requires": { 1168 | "argv-tools": "^0.1.1", 1169 | "array-back": "^2.0.0", 1170 | "find-replace": "^2.0.1", 1171 | "lodash.camelcase": "^4.3.0", 1172 | "typical": "^2.6.1" 1173 | } 1174 | }, 1175 | "command-line-usage": { 1176 | "version": "5.0.5", 1177 | "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz", 1178 | "integrity": "sha512-d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==", 1179 | "requires": { 1180 | "array-back": "^2.0.0", 1181 | "chalk": "^2.4.1", 1182 | "table-layout": "^0.4.3", 1183 | "typical": "^2.6.1" 1184 | } 1185 | }, 1186 | "core-js": { 1187 | "version": "3.25.5", 1188 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz", 1189 | "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==" 1190 | }, 1191 | "deep-extend": { 1192 | "version": "0.6.0", 1193 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 1194 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 1195 | }, 1196 | "es-cookie": { 1197 | "version": "1.3.2", 1198 | "resolved": "https://registry.npmjs.org/es-cookie/-/es-cookie-1.3.2.tgz", 1199 | "integrity": "sha512-UTlYYhXGLOy05P/vKVT2Ui7WtC7NiRzGtJyAKKn32g5Gvcjn7KAClLPWlipCtxIus934dFg9o9jXiBL0nP+t9Q==" 1200 | }, 1201 | "esbuild": { 1202 | "version": "0.15.10", 1203 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.10.tgz", 1204 | "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", 1205 | "dev": true, 1206 | "requires": { 1207 | "@esbuild/android-arm": "0.15.10", 1208 | "@esbuild/linux-loong64": "0.15.10", 1209 | "esbuild-android-64": "0.15.10", 1210 | "esbuild-android-arm64": "0.15.10", 1211 | "esbuild-darwin-64": "0.15.10", 1212 | "esbuild-darwin-arm64": "0.15.10", 1213 | "esbuild-freebsd-64": "0.15.10", 1214 | "esbuild-freebsd-arm64": "0.15.10", 1215 | "esbuild-linux-32": "0.15.10", 1216 | "esbuild-linux-64": "0.15.10", 1217 | "esbuild-linux-arm": "0.15.10", 1218 | "esbuild-linux-arm64": "0.15.10", 1219 | "esbuild-linux-mips64le": "0.15.10", 1220 | "esbuild-linux-ppc64le": "0.15.10", 1221 | "esbuild-linux-riscv64": "0.15.10", 1222 | "esbuild-linux-s390x": "0.15.10", 1223 | "esbuild-netbsd-64": "0.15.10", 1224 | "esbuild-openbsd-64": "0.15.10", 1225 | "esbuild-sunos-64": "0.15.10", 1226 | "esbuild-windows-32": "0.15.10", 1227 | "esbuild-windows-64": "0.15.10", 1228 | "esbuild-windows-arm64": "0.15.10" 1229 | } 1230 | }, 1231 | "esbuild-android-64": { 1232 | "version": "0.15.10", 1233 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", 1234 | "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", 1235 | "dev": true, 1236 | "optional": true 1237 | }, 1238 | "esbuild-android-arm64": { 1239 | "version": "0.15.10", 1240 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", 1241 | "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", 1242 | "dev": true, 1243 | "optional": true 1244 | }, 1245 | "esbuild-darwin-64": { 1246 | "version": "0.15.10", 1247 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", 1248 | "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", 1249 | "dev": true, 1250 | "optional": true 1251 | }, 1252 | "esbuild-darwin-arm64": { 1253 | "version": "0.15.10", 1254 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", 1255 | "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", 1256 | "dev": true, 1257 | "optional": true 1258 | }, 1259 | "esbuild-freebsd-64": { 1260 | "version": "0.15.10", 1261 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", 1262 | "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", 1263 | "dev": true, 1264 | "optional": true 1265 | }, 1266 | "esbuild-freebsd-arm64": { 1267 | "version": "0.15.10", 1268 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", 1269 | "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", 1270 | "dev": true, 1271 | "optional": true 1272 | }, 1273 | "esbuild-linux-32": { 1274 | "version": "0.15.10", 1275 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", 1276 | "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", 1277 | "dev": true, 1278 | "optional": true 1279 | }, 1280 | "esbuild-linux-64": { 1281 | "version": "0.15.10", 1282 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", 1283 | "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", 1284 | "dev": true, 1285 | "optional": true 1286 | }, 1287 | "esbuild-linux-arm": { 1288 | "version": "0.15.10", 1289 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", 1290 | "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", 1291 | "dev": true, 1292 | "optional": true 1293 | }, 1294 | "esbuild-linux-arm64": { 1295 | "version": "0.15.10", 1296 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", 1297 | "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", 1298 | "dev": true, 1299 | "optional": true 1300 | }, 1301 | "esbuild-linux-mips64le": { 1302 | "version": "0.15.10", 1303 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", 1304 | "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", 1305 | "dev": true, 1306 | "optional": true 1307 | }, 1308 | "esbuild-linux-ppc64le": { 1309 | "version": "0.15.10", 1310 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", 1311 | "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", 1312 | "dev": true, 1313 | "optional": true 1314 | }, 1315 | "esbuild-linux-riscv64": { 1316 | "version": "0.15.10", 1317 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", 1318 | "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", 1319 | "dev": true, 1320 | "optional": true 1321 | }, 1322 | "esbuild-linux-s390x": { 1323 | "version": "0.15.10", 1324 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", 1325 | "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", 1326 | "dev": true, 1327 | "optional": true 1328 | }, 1329 | "esbuild-netbsd-64": { 1330 | "version": "0.15.10", 1331 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", 1332 | "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", 1333 | "dev": true, 1334 | "optional": true 1335 | }, 1336 | "esbuild-openbsd-64": { 1337 | "version": "0.15.10", 1338 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", 1339 | "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", 1340 | "dev": true, 1341 | "optional": true 1342 | }, 1343 | "esbuild-sunos-64": { 1344 | "version": "0.15.10", 1345 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", 1346 | "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", 1347 | "dev": true, 1348 | "optional": true 1349 | }, 1350 | "esbuild-windows-32": { 1351 | "version": "0.15.10", 1352 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", 1353 | "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", 1354 | "dev": true, 1355 | "optional": true 1356 | }, 1357 | "esbuild-windows-64": { 1358 | "version": "0.15.10", 1359 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", 1360 | "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", 1361 | "dev": true, 1362 | "optional": true 1363 | }, 1364 | "esbuild-windows-arm64": { 1365 | "version": "0.15.10", 1366 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", 1367 | "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", 1368 | "dev": true, 1369 | "optional": true 1370 | }, 1371 | "escape-string-regexp": { 1372 | "version": "1.0.5", 1373 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1374 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 1375 | }, 1376 | "event-target-shim": { 1377 | "version": "5.0.1", 1378 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 1379 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 1380 | }, 1381 | "fast-text-encoding": { 1382 | "version": "1.0.6", 1383 | "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", 1384 | "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" 1385 | }, 1386 | "find-replace": { 1387 | "version": "2.0.1", 1388 | "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", 1389 | "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", 1390 | "requires": { 1391 | "array-back": "^2.0.0", 1392 | "test-value": "^3.0.0" 1393 | } 1394 | }, 1395 | "flatbuffers": { 1396 | "version": "1.11.0", 1397 | "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.11.0.tgz", 1398 | "integrity": "sha512-0PqFKtXI4MjxomI7jO4g5XfLPm/15g2R+5WGCHBGYGh0ihQiypnHlJ6bMmkkrAe0GzZ4d7PDAfCONKIPUxNF+A==" 1399 | }, 1400 | "fsevents": { 1401 | "version": "2.3.2", 1402 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1403 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1404 | "dev": true, 1405 | "optional": true 1406 | }, 1407 | "function-bind": { 1408 | "version": "1.1.1", 1409 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1410 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1411 | "dev": true 1412 | }, 1413 | "has": { 1414 | "version": "1.0.3", 1415 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1416 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1417 | "dev": true, 1418 | "requires": { 1419 | "function-bind": "^1.1.1" 1420 | } 1421 | }, 1422 | "has-flag": { 1423 | "version": "3.0.0", 1424 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1425 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" 1426 | }, 1427 | "hoist-non-react-statics": { 1428 | "version": "3.3.2", 1429 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", 1430 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", 1431 | "requires": { 1432 | "react-is": "^16.7.0" 1433 | } 1434 | }, 1435 | "is-core-module": { 1436 | "version": "2.10.0", 1437 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", 1438 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", 1439 | "dev": true, 1440 | "requires": { 1441 | "has": "^1.0.3" 1442 | } 1443 | }, 1444 | "js-tokens": { 1445 | "version": "4.0.0", 1446 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1447 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1448 | }, 1449 | "json-bignum": { 1450 | "version": "0.0.3", 1451 | "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", 1452 | "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==" 1453 | }, 1454 | "lodash": { 1455 | "version": "4.17.21", 1456 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1457 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 1458 | }, 1459 | "lodash.camelcase": { 1460 | "version": "4.3.0", 1461 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", 1462 | "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" 1463 | }, 1464 | "lodash.padend": { 1465 | "version": "4.6.1", 1466 | "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", 1467 | "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==" 1468 | }, 1469 | "loose-envify": { 1470 | "version": "1.4.0", 1471 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1472 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1473 | "requires": { 1474 | "js-tokens": "^3.0.0 || ^4.0.0" 1475 | } 1476 | }, 1477 | "nanoid": { 1478 | "version": "3.3.4", 1479 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1480 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1481 | "dev": true 1482 | }, 1483 | "object-assign": { 1484 | "version": "4.1.1", 1485 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1486 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 1487 | }, 1488 | "pad-left": { 1489 | "version": "2.1.0", 1490 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", 1491 | "integrity": "sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA==", 1492 | "requires": { 1493 | "repeat-string": "^1.5.4" 1494 | } 1495 | }, 1496 | "path-parse": { 1497 | "version": "1.0.7", 1498 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1499 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1500 | "dev": true 1501 | }, 1502 | "picocolors": { 1503 | "version": "1.0.0", 1504 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1505 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1506 | "dev": true 1507 | }, 1508 | "postcss": { 1509 | "version": "8.4.17", 1510 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", 1511 | "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", 1512 | "dev": true, 1513 | "requires": { 1514 | "nanoid": "^3.3.4", 1515 | "picocolors": "^1.0.0", 1516 | "source-map-js": "^1.0.2" 1517 | } 1518 | }, 1519 | "promise-polyfill": { 1520 | "version": "8.2.3", 1521 | "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", 1522 | "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" 1523 | }, 1524 | "prop-types": { 1525 | "version": "15.8.1", 1526 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 1527 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 1528 | "requires": { 1529 | "loose-envify": "^1.4.0", 1530 | "object-assign": "^4.1.1", 1531 | "react-is": "^16.13.1" 1532 | } 1533 | }, 1534 | "react": { 1535 | "version": "16.14.0", 1536 | "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", 1537 | "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", 1538 | "requires": { 1539 | "loose-envify": "^1.1.0", 1540 | "object-assign": "^4.1.1", 1541 | "prop-types": "^15.6.2" 1542 | } 1543 | }, 1544 | "react-dom": { 1545 | "version": "16.14.0", 1546 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", 1547 | "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", 1548 | "requires": { 1549 | "loose-envify": "^1.1.0", 1550 | "object-assign": "^4.1.1", 1551 | "prop-types": "^15.6.2", 1552 | "scheduler": "^0.19.1" 1553 | } 1554 | }, 1555 | "react-is": { 1556 | "version": "16.13.1", 1557 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 1558 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 1559 | }, 1560 | "reduce-flatten": { 1561 | "version": "1.0.1", 1562 | "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", 1563 | "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==" 1564 | }, 1565 | "repeat-string": { 1566 | "version": "1.6.1", 1567 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 1568 | "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" 1569 | }, 1570 | "resolve": { 1571 | "version": "1.22.1", 1572 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1573 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1574 | "dev": true, 1575 | "requires": { 1576 | "is-core-module": "^2.9.0", 1577 | "path-parse": "^1.0.7", 1578 | "supports-preserve-symlinks-flag": "^1.0.0" 1579 | } 1580 | }, 1581 | "rollup": { 1582 | "version": "2.78.1", 1583 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", 1584 | "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", 1585 | "dev": true, 1586 | "requires": { 1587 | "fsevents": "~2.3.2" 1588 | } 1589 | }, 1590 | "scheduler": { 1591 | "version": "0.19.1", 1592 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", 1593 | "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", 1594 | "requires": { 1595 | "loose-envify": "^1.1.0", 1596 | "object-assign": "^4.1.1" 1597 | } 1598 | }, 1599 | "source-map-js": { 1600 | "version": "1.0.2", 1601 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1602 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1603 | "dev": true 1604 | }, 1605 | "streamlit-component-lib": { 1606 | "version": "1.4.0", 1607 | "resolved": "https://registry.npmjs.org/streamlit-component-lib/-/streamlit-component-lib-1.4.0.tgz", 1608 | "integrity": "sha512-8ne67TdvJXuCczzUHp5FR6CxZr9T/ojY+LaNNn8FdXRXIGhVFUocKe84h1vJ5KhnTcI3rIGr7nnVUST1N7gtxA==", 1609 | "requires": { 1610 | "apache-arrow": "^0.17.0", 1611 | "event-target-shim": "^5.0.1", 1612 | "hoist-non-react-statics": "^3.3.2", 1613 | "react": "^16.13.1", 1614 | "react-dom": "^16.13.1" 1615 | } 1616 | }, 1617 | "supports-color": { 1618 | "version": "5.5.0", 1619 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1620 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1621 | "requires": { 1622 | "has-flag": "^3.0.0" 1623 | } 1624 | }, 1625 | "supports-preserve-symlinks-flag": { 1626 | "version": "1.0.0", 1627 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1628 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1629 | "dev": true 1630 | }, 1631 | "table-layout": { 1632 | "version": "0.4.5", 1633 | "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", 1634 | "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", 1635 | "requires": { 1636 | "array-back": "^2.0.0", 1637 | "deep-extend": "~0.6.0", 1638 | "lodash.padend": "^4.6.1", 1639 | "typical": "^2.6.1", 1640 | "wordwrapjs": "^3.0.0" 1641 | } 1642 | }, 1643 | "test-value": { 1644 | "version": "3.0.0", 1645 | "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", 1646 | "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", 1647 | "requires": { 1648 | "array-back": "^2.0.0", 1649 | "typical": "^2.6.1" 1650 | } 1651 | }, 1652 | "text-encoding-utf-8": { 1653 | "version": "1.0.2", 1654 | "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", 1655 | "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" 1656 | }, 1657 | "toastify-js": { 1658 | "version": "1.12.0", 1659 | "resolved": "https://registry.npmjs.org/toastify-js/-/toastify-js-1.12.0.tgz", 1660 | "integrity": "sha512-HeMHCO9yLPvP9k0apGSdPUWrUbLnxUKNFzgUoZp1PHCLploIX/4DSQ7V8H25ef+h4iO9n0he7ImfcndnN6nDrQ==" 1661 | }, 1662 | "tslib": { 1663 | "version": "1.14.1", 1664 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 1665 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 1666 | }, 1667 | "typical": { 1668 | "version": "2.6.1", 1669 | "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", 1670 | "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==" 1671 | }, 1672 | "unfetch": { 1673 | "version": "4.2.0", 1674 | "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", 1675 | "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" 1676 | }, 1677 | "vite": { 1678 | "version": "3.1.4", 1679 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.4.tgz", 1680 | "integrity": "sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==", 1681 | "dev": true, 1682 | "requires": { 1683 | "esbuild": "^0.15.6", 1684 | "fsevents": "~2.3.2", 1685 | "postcss": "^8.4.16", 1686 | "resolve": "^1.22.1", 1687 | "rollup": "~2.78.0" 1688 | } 1689 | }, 1690 | "wordwrapjs": { 1691 | "version": "3.0.0", 1692 | "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", 1693 | "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", 1694 | "requires": { 1695 | "reduce-flatten": "^1.0.1", 1696 | "typical": "^2.6.1" 1697 | } 1698 | } 1699 | } 1700 | } 1701 | --------------------------------------------------------------------------------