├── .gitignore ├── LICENSE ├── MANIFEST.in ├── README.md ├── my_component ├── __init__.py ├── example.py └── frontend │ ├── .gitignore │ ├── .vscode │ └── extensions.json │ ├── README.md │ ├── env.d.ts │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── App.vue │ ├── MyComponent.vue │ ├── main.ts │ └── streamlit │ │ ├── StreamlitVue.ts │ │ ├── WithStreamlitConnection.vue │ │ └── index.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── quickstart.png └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .nox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | *.py,cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | cover/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | .pybuilder/ 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | # For a library or package, you might want to ignore these files since the code is 87 | # intended to run in multiple environments; otherwise, check them in: 88 | # .python-version 89 | 90 | # pipenv 91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 94 | # install all needed dependencies. 95 | #Pipfile.lock 96 | 97 | # poetry 98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 99 | # This is especially recommended for binary packages to ensure reproducibility, and is more 100 | # commonly ignored for libraries. 101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 102 | #poetry.lock 103 | 104 | # pdm 105 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 106 | #pdm.lock 107 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 108 | # in version control. 109 | # https://pdm.fming.dev/#use-with-ide 110 | .pdm.toml 111 | 112 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 113 | __pypackages__/ 114 | 115 | # Celery stuff 116 | celerybeat-schedule 117 | celerybeat.pid 118 | 119 | # SageMath parsed files 120 | *.sage.py 121 | 122 | # Environments 123 | .env 124 | .venv 125 | env/ 126 | venv/ 127 | ENV/ 128 | env.bak/ 129 | venv.bak/ 130 | 131 | # Spyder project settings 132 | .spyderproject 133 | .spyproject 134 | 135 | # Rope project settings 136 | .ropeproject 137 | 138 | # mkdocs documentation 139 | /site 140 | 141 | # mypy 142 | .mypy_cache/ 143 | .dmypy.json 144 | dmypy.json 145 | 146 | # Pyre type checker 147 | .pyre/ 148 | 149 | # pytype static type analyzer 150 | .pytype/ 151 | 152 | # Cython debug symbols 153 | cython_debug/ 154 | 155 | # PyCharm 156 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 157 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 158 | # and can be added to the global gitignore or merged into this file. For a more nuclear 159 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 160 | #.idea/ 161 | 162 | # MacOS 163 | .DS_Store 164 | 165 | # Editor directories and files 166 | .vscode/* 167 | !.vscode/extensions.json 168 | 169 | # TypeScript 170 | *.tsbuildinfo 171 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Gabriel Tem Pass 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include my_component/frontend/dist * 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Streamlit Component Vue Vite Template 2 | 3 | A template for creating Streamlit Components. It uses Vue 3 to code the frontend and Vite to serve the files locally during development, as well as bundle and compile them for production. 4 | 5 | This repo contains templates and example code for creating [Streamlit](https://streamlit.io) Components. For complete information, please see the [Streamlit Components documentation](https://docs.streamlit.io/en/latest/streamlit_components.html)! 6 | 7 | ## Quickstart 8 | 9 | Ensure you have [Python 3.6+](https://www.python.org/downloads/), [Node.js](https://nodejs.org) and [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) installed. 10 | 11 | 1. Clone this repository: 12 | ``` bash 13 | git clone git@github.com:gabrieltempass/streamlit-component-vue-vite-template.git 14 | ``` 15 | 16 | 2. Go to the `frontend` directory and initialize and run the component template frontend: 17 | ``` bash 18 | cd streamlit-component-vue-vite-template/my_component/frontend 19 | ``` 20 | ``` bash 21 | npm install 22 | npm run dev 23 | ``` 24 | 25 | 3. From a separate terminal, go to the repository root directory, create a new Python virtual environment, activate it and install Streamlit and the template as an editable package: 26 | ``` bash 27 | cd streamlit-component-vue-vite-template 28 | ``` 29 | ``` bash 30 | python3 -m venv venv 31 | . venv/bin/activate 32 | pip install streamlit 33 | pip install -e . 34 | ``` 35 | 36 | Still from the same separate terminal, run the example Streamlit app: 37 | ``` bash 38 | streamlit run my_component/example.py 39 | ``` 40 | 41 | If all goes well, you should see something like this: 42 | 43 | ![Quickstart Success](quickstart.png) 44 | 45 | Modify the frontend code at `my_component/frontend/src/MyComponent.vue`. 46 | Modify the Python code at `my_component/__init__.py`. 47 | 48 | ## References 49 | 50 | This template is based on: 51 | * [the original template made by the Streamlit team](https://github.com/streamlit/component-template/tree/master/template), that uses React (instead of Vue 3) and Webpack (instead of Vite). 52 | * [streamlit-component-template-vue](https://github.com/andfanilo/streamlit-component-template-vue/tree/vue3), by [@andfanilo](https://github.com/andfanilo), that uses Vue 2 or 3 and Webpack (instead of Vite). 53 | -------------------------------------------------------------------------------- /my_component/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | import streamlit.components.v1 as components 4 | 5 | # Create a _RELEASE constant. We'll set this to False while we're developing 6 | # the component, and True when we're ready to package and distribute it. 7 | # (This is, of course, optional - there are innumerable ways to manage your 8 | # release process.) 9 | _RELEASE = False 10 | 11 | # Declare a Streamlit component. `declare_component` returns a function 12 | # that is used to create instances of the component. We're naming this 13 | # function "_component_func", with an underscore prefix, because we don't want 14 | # to expose it directly to users. Instead, we will create a custom wrapper 15 | # function, below, that will serve as our component's public API. 16 | 17 | # It's worth noting that this call to `declare_component` is the 18 | # *only thing* you need to do to create the binding between Streamlit and 19 | # your component frontend. Everything else we do in this file is simply a 20 | # best practice. 21 | 22 | if not _RELEASE: 23 | _component_func = components.declare_component( 24 | # We give the component a simple, descriptive name ("my_component" 25 | # does not fit this bill, so please choose something better for your 26 | # own component :) 27 | "my_component", 28 | # Pass `url` here to tell Streamlit that the component will be served 29 | # by the local dev server that you run via `npm run start`. 30 | # (This is useful while your component is in development.) 31 | url="http://localhost:5173", 32 | ) 33 | else: 34 | # When we're distributing a production version of the component, we'll 35 | # replace the `url` param with `path`, and point it to the component's 36 | # build directory: 37 | parent_dir = os.path.dirname(os.path.abspath(__file__)) 38 | build_dir = os.path.join(parent_dir, "frontend/dist") 39 | _component_func = components.declare_component( 40 | "my_component", 41 | path=build_dir 42 | ) 43 | 44 | 45 | # Create a wrapper function for the component. This is an optional 46 | # best practice - we could simply expose the component function returned by 47 | # `declare_component` and call it done. The wrapper allows us to customize 48 | # our component's API: we can pre-process its input args, post-process its 49 | # output value, and add a docstring for users. 50 | def my_component(name, key=None): 51 | """Create a new instance of "my_component". 52 | 53 | Parameters 54 | ---------- 55 | name: str 56 | The name of the thing we're saying hello to. The component will display 57 | the text "Hello, {name}!" 58 | key: str or None 59 | An optional key that uniquely identifies this component. If this is 60 | None, and the component's arguments are changed, the component will 61 | be re-mounted in the Streamlit frontend and lose its current state. 62 | 63 | Returns 64 | ------- 65 | int 66 | The number of times the component's "Click Me" button has been clicked. 67 | (This is the value passed to `Streamlit.setComponentValue` on the 68 | frontend.) 69 | 70 | """ 71 | # Call through to our private component function. Arguments we pass here 72 | # will be sent to the frontend, where they'll be available in an "args" 73 | # dictionary. 74 | # 75 | # "default" is a special argument that specifies the initial return 76 | # value of the component before the user has interacted with it. 77 | component_value = _component_func(name=name, key=key, default=0) 78 | 79 | # We could modify the value returned from the component if we wanted. 80 | # There's no need to do this in our simple example - but it's an option. 81 | return component_value 82 | -------------------------------------------------------------------------------- /my_component/example.py: -------------------------------------------------------------------------------- 1 | import streamlit as st 2 | 3 | from my_component import my_component 4 | 5 | # Add some test code to play with the component while it's in development. 6 | # During development, we can run this just as we would any other Streamlit 7 | # app: `$ streamlit run my_component/example.py` 8 | 9 | st.subheader("Component with constant args") 10 | 11 | # Create an instance of our component with a constant `name` arg, and 12 | # print its output value. 13 | num_clicks = my_component("World") 14 | st.markdown("You've clicked %s times!" % int(num_clicks)) 15 | 16 | st.markdown("---") 17 | st.subheader("Component with variable args") 18 | 19 | # Create a second instance of our component whose `name` arg will vary 20 | # based on a text_input widget. 21 | # 22 | # We use the special "key" argument to assign a fixed identity to this 23 | # component instance. By default, when a component's arguments change, 24 | # it is considered a new instance and will be re-mounted on the frontend 25 | # and lose its current state. In this case, we want to vary the component's 26 | # "name" argument without having it get recreated. 27 | name_input = st.text_input("Enter a name", value="Streamlit") 28 | num_clicks = my_component(name_input, key="foo") 29 | st.markdown("You've clicked %s times!" % int(num_clicks)) 30 | -------------------------------------------------------------------------------- /my_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 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | 30 | *.tsbuildinfo 31 | -------------------------------------------------------------------------------- /my_component/frontend/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /my_component/frontend/README.md: -------------------------------------------------------------------------------- 1 | # my_component 2 | 3 | This template should help get you started developing with Vue 3 in Vite. 4 | 5 | ## Recommended IDE Setup 6 | 7 | [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). 8 | 9 | ## Type Support for `.vue` Imports in TS 10 | 11 | TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types. 12 | 13 | If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps: 14 | 15 | 1. Disable the built-in TypeScript Extension 16 | 1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette 17 | 2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)` 18 | 2. Reload the VSCode window by running `Developer: Reload Window` from the command palette. 19 | 20 | ## Customize configuration 21 | 22 | See [Vite Configuration Reference](https://vitejs.dev/config/). 23 | 24 | ## Project Setup 25 | 26 | ```sh 27 | npm install 28 | ``` 29 | 30 | ### Compile and Hot-Reload for Development 31 | 32 | ```sh 33 | npm run dev 34 | ``` 35 | 36 | ### Type-Check, Compile and Minify for Production 37 | 38 | ```sh 39 | npm run build 40 | ``` 41 | -------------------------------------------------------------------------------- /my_component/frontend/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /my_component/frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Streamlit Component 8 | 9 | 10 | 14 |
15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /my_component/frontend/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my_component", 3 | "version": "0.0.1", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "my_component", 9 | "version": "0.0.1", 10 | "dependencies": { 11 | "streamlit-component-lib": "^2.0.0", 12 | "vue": "^3.3.11" 13 | }, 14 | "devDependencies": { 15 | "@tsconfig/node18": "^18.2.2", 16 | "@types/node": "^18.19.3", 17 | "@vitejs/plugin-vue": "^4.5.2", 18 | "@vue/tsconfig": "^0.5.0", 19 | "npm-run-all2": "^6.1.1", 20 | "typescript": "~5.3.0", 21 | "vite": "^5.0.10", 22 | "vue-tsc": "^1.8.25" 23 | } 24 | }, 25 | "node_modules/@babel/code-frame": { 26 | "version": "7.23.5", 27 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", 28 | "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", 29 | "dev": true, 30 | "dependencies": { 31 | "@babel/highlight": "^7.23.4", 32 | "chalk": "^2.4.2" 33 | }, 34 | "engines": { 35 | "node": ">=6.9.0" 36 | } 37 | }, 38 | "node_modules/@babel/helper-validator-identifier": { 39 | "version": "7.22.20", 40 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", 41 | "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", 42 | "dev": true, 43 | "engines": { 44 | "node": ">=6.9.0" 45 | } 46 | }, 47 | "node_modules/@babel/highlight": { 48 | "version": "7.23.4", 49 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", 50 | "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", 51 | "dev": true, 52 | "dependencies": { 53 | "@babel/helper-validator-identifier": "^7.22.20", 54 | "chalk": "^2.4.2", 55 | "js-tokens": "^4.0.0" 56 | }, 57 | "engines": { 58 | "node": ">=6.9.0" 59 | } 60 | }, 61 | "node_modules/@babel/parser": { 62 | "version": "7.23.6", 63 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", 64 | "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", 65 | "bin": { 66 | "parser": "bin/babel-parser.js" 67 | }, 68 | "engines": { 69 | "node": ">=6.0.0" 70 | } 71 | }, 72 | "node_modules/@esbuild/aix-ppc64": { 73 | "version": "0.19.10", 74 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz", 75 | "integrity": "sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==", 76 | "cpu": [ 77 | "ppc64" 78 | ], 79 | "dev": true, 80 | "optional": true, 81 | "os": [ 82 | "aix" 83 | ], 84 | "engines": { 85 | "node": ">=12" 86 | } 87 | }, 88 | "node_modules/@esbuild/android-arm": { 89 | "version": "0.19.10", 90 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.10.tgz", 91 | "integrity": "sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==", 92 | "cpu": [ 93 | "arm" 94 | ], 95 | "dev": true, 96 | "optional": true, 97 | "os": [ 98 | "android" 99 | ], 100 | "engines": { 101 | "node": ">=12" 102 | } 103 | }, 104 | "node_modules/@esbuild/android-arm64": { 105 | "version": "0.19.10", 106 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz", 107 | "integrity": "sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==", 108 | "cpu": [ 109 | "arm64" 110 | ], 111 | "dev": true, 112 | "optional": true, 113 | "os": [ 114 | "android" 115 | ], 116 | "engines": { 117 | "node": ">=12" 118 | } 119 | }, 120 | "node_modules/@esbuild/android-x64": { 121 | "version": "0.19.10", 122 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.10.tgz", 123 | "integrity": "sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==", 124 | "cpu": [ 125 | "x64" 126 | ], 127 | "dev": true, 128 | "optional": true, 129 | "os": [ 130 | "android" 131 | ], 132 | "engines": { 133 | "node": ">=12" 134 | } 135 | }, 136 | "node_modules/@esbuild/darwin-arm64": { 137 | "version": "0.19.10", 138 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz", 139 | "integrity": "sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==", 140 | "cpu": [ 141 | "arm64" 142 | ], 143 | "dev": true, 144 | "optional": true, 145 | "os": [ 146 | "darwin" 147 | ], 148 | "engines": { 149 | "node": ">=12" 150 | } 151 | }, 152 | "node_modules/@esbuild/darwin-x64": { 153 | "version": "0.19.10", 154 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz", 155 | "integrity": "sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==", 156 | "cpu": [ 157 | "x64" 158 | ], 159 | "dev": true, 160 | "optional": true, 161 | "os": [ 162 | "darwin" 163 | ], 164 | "engines": { 165 | "node": ">=12" 166 | } 167 | }, 168 | "node_modules/@esbuild/freebsd-arm64": { 169 | "version": "0.19.10", 170 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz", 171 | "integrity": "sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==", 172 | "cpu": [ 173 | "arm64" 174 | ], 175 | "dev": true, 176 | "optional": true, 177 | "os": [ 178 | "freebsd" 179 | ], 180 | "engines": { 181 | "node": ">=12" 182 | } 183 | }, 184 | "node_modules/@esbuild/freebsd-x64": { 185 | "version": "0.19.10", 186 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz", 187 | "integrity": "sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==", 188 | "cpu": [ 189 | "x64" 190 | ], 191 | "dev": true, 192 | "optional": true, 193 | "os": [ 194 | "freebsd" 195 | ], 196 | "engines": { 197 | "node": ">=12" 198 | } 199 | }, 200 | "node_modules/@esbuild/linux-arm": { 201 | "version": "0.19.10", 202 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz", 203 | "integrity": "sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==", 204 | "cpu": [ 205 | "arm" 206 | ], 207 | "dev": true, 208 | "optional": true, 209 | "os": [ 210 | "linux" 211 | ], 212 | "engines": { 213 | "node": ">=12" 214 | } 215 | }, 216 | "node_modules/@esbuild/linux-arm64": { 217 | "version": "0.19.10", 218 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz", 219 | "integrity": "sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==", 220 | "cpu": [ 221 | "arm64" 222 | ], 223 | "dev": true, 224 | "optional": true, 225 | "os": [ 226 | "linux" 227 | ], 228 | "engines": { 229 | "node": ">=12" 230 | } 231 | }, 232 | "node_modules/@esbuild/linux-ia32": { 233 | "version": "0.19.10", 234 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz", 235 | "integrity": "sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==", 236 | "cpu": [ 237 | "ia32" 238 | ], 239 | "dev": true, 240 | "optional": true, 241 | "os": [ 242 | "linux" 243 | ], 244 | "engines": { 245 | "node": ">=12" 246 | } 247 | }, 248 | "node_modules/@esbuild/linux-loong64": { 249 | "version": "0.19.10", 250 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz", 251 | "integrity": "sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==", 252 | "cpu": [ 253 | "loong64" 254 | ], 255 | "dev": true, 256 | "optional": true, 257 | "os": [ 258 | "linux" 259 | ], 260 | "engines": { 261 | "node": ">=12" 262 | } 263 | }, 264 | "node_modules/@esbuild/linux-mips64el": { 265 | "version": "0.19.10", 266 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz", 267 | "integrity": "sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==", 268 | "cpu": [ 269 | "mips64el" 270 | ], 271 | "dev": true, 272 | "optional": true, 273 | "os": [ 274 | "linux" 275 | ], 276 | "engines": { 277 | "node": ">=12" 278 | } 279 | }, 280 | "node_modules/@esbuild/linux-ppc64": { 281 | "version": "0.19.10", 282 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz", 283 | "integrity": "sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==", 284 | "cpu": [ 285 | "ppc64" 286 | ], 287 | "dev": true, 288 | "optional": true, 289 | "os": [ 290 | "linux" 291 | ], 292 | "engines": { 293 | "node": ">=12" 294 | } 295 | }, 296 | "node_modules/@esbuild/linux-riscv64": { 297 | "version": "0.19.10", 298 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz", 299 | "integrity": "sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==", 300 | "cpu": [ 301 | "riscv64" 302 | ], 303 | "dev": true, 304 | "optional": true, 305 | "os": [ 306 | "linux" 307 | ], 308 | "engines": { 309 | "node": ">=12" 310 | } 311 | }, 312 | "node_modules/@esbuild/linux-s390x": { 313 | "version": "0.19.10", 314 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz", 315 | "integrity": "sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==", 316 | "cpu": [ 317 | "s390x" 318 | ], 319 | "dev": true, 320 | "optional": true, 321 | "os": [ 322 | "linux" 323 | ], 324 | "engines": { 325 | "node": ">=12" 326 | } 327 | }, 328 | "node_modules/@esbuild/linux-x64": { 329 | "version": "0.19.10", 330 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz", 331 | "integrity": "sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==", 332 | "cpu": [ 333 | "x64" 334 | ], 335 | "dev": true, 336 | "optional": true, 337 | "os": [ 338 | "linux" 339 | ], 340 | "engines": { 341 | "node": ">=12" 342 | } 343 | }, 344 | "node_modules/@esbuild/netbsd-x64": { 345 | "version": "0.19.10", 346 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz", 347 | "integrity": "sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==", 348 | "cpu": [ 349 | "x64" 350 | ], 351 | "dev": true, 352 | "optional": true, 353 | "os": [ 354 | "netbsd" 355 | ], 356 | "engines": { 357 | "node": ">=12" 358 | } 359 | }, 360 | "node_modules/@esbuild/openbsd-x64": { 361 | "version": "0.19.10", 362 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz", 363 | "integrity": "sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==", 364 | "cpu": [ 365 | "x64" 366 | ], 367 | "dev": true, 368 | "optional": true, 369 | "os": [ 370 | "openbsd" 371 | ], 372 | "engines": { 373 | "node": ">=12" 374 | } 375 | }, 376 | "node_modules/@esbuild/sunos-x64": { 377 | "version": "0.19.10", 378 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz", 379 | "integrity": "sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==", 380 | "cpu": [ 381 | "x64" 382 | ], 383 | "dev": true, 384 | "optional": true, 385 | "os": [ 386 | "sunos" 387 | ], 388 | "engines": { 389 | "node": ">=12" 390 | } 391 | }, 392 | "node_modules/@esbuild/win32-arm64": { 393 | "version": "0.19.10", 394 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz", 395 | "integrity": "sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==", 396 | "cpu": [ 397 | "arm64" 398 | ], 399 | "dev": true, 400 | "optional": true, 401 | "os": [ 402 | "win32" 403 | ], 404 | "engines": { 405 | "node": ">=12" 406 | } 407 | }, 408 | "node_modules/@esbuild/win32-ia32": { 409 | "version": "0.19.10", 410 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz", 411 | "integrity": "sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==", 412 | "cpu": [ 413 | "ia32" 414 | ], 415 | "dev": true, 416 | "optional": true, 417 | "os": [ 418 | "win32" 419 | ], 420 | "engines": { 421 | "node": ">=12" 422 | } 423 | }, 424 | "node_modules/@esbuild/win32-x64": { 425 | "version": "0.19.10", 426 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz", 427 | "integrity": "sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==", 428 | "cpu": [ 429 | "x64" 430 | ], 431 | "dev": true, 432 | "optional": true, 433 | "os": [ 434 | "win32" 435 | ], 436 | "engines": { 437 | "node": ">=12" 438 | } 439 | }, 440 | "node_modules/@jridgewell/sourcemap-codec": { 441 | "version": "1.4.15", 442 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", 443 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" 444 | }, 445 | "node_modules/@rollup/rollup-android-arm-eabi": { 446 | "version": "4.9.1", 447 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.1.tgz", 448 | "integrity": "sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==", 449 | "cpu": [ 450 | "arm" 451 | ], 452 | "dev": true, 453 | "optional": true, 454 | "os": [ 455 | "android" 456 | ] 457 | }, 458 | "node_modules/@rollup/rollup-android-arm64": { 459 | "version": "4.9.1", 460 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.1.tgz", 461 | "integrity": "sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==", 462 | "cpu": [ 463 | "arm64" 464 | ], 465 | "dev": true, 466 | "optional": true, 467 | "os": [ 468 | "android" 469 | ] 470 | }, 471 | "node_modules/@rollup/rollup-darwin-arm64": { 472 | "version": "4.9.1", 473 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.1.tgz", 474 | "integrity": "sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==", 475 | "cpu": [ 476 | "arm64" 477 | ], 478 | "dev": true, 479 | "optional": true, 480 | "os": [ 481 | "darwin" 482 | ] 483 | }, 484 | "node_modules/@rollup/rollup-darwin-x64": { 485 | "version": "4.9.1", 486 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.1.tgz", 487 | "integrity": "sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==", 488 | "cpu": [ 489 | "x64" 490 | ], 491 | "dev": true, 492 | "optional": true, 493 | "os": [ 494 | "darwin" 495 | ] 496 | }, 497 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 498 | "version": "4.9.1", 499 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.1.tgz", 500 | "integrity": "sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==", 501 | "cpu": [ 502 | "arm" 503 | ], 504 | "dev": true, 505 | "optional": true, 506 | "os": [ 507 | "linux" 508 | ] 509 | }, 510 | "node_modules/@rollup/rollup-linux-arm64-gnu": { 511 | "version": "4.9.1", 512 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.1.tgz", 513 | "integrity": "sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==", 514 | "cpu": [ 515 | "arm64" 516 | ], 517 | "dev": true, 518 | "optional": true, 519 | "os": [ 520 | "linux" 521 | ] 522 | }, 523 | "node_modules/@rollup/rollup-linux-arm64-musl": { 524 | "version": "4.9.1", 525 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.1.tgz", 526 | "integrity": "sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==", 527 | "cpu": [ 528 | "arm64" 529 | ], 530 | "dev": true, 531 | "optional": true, 532 | "os": [ 533 | "linux" 534 | ] 535 | }, 536 | "node_modules/@rollup/rollup-linux-riscv64-gnu": { 537 | "version": "4.9.1", 538 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.1.tgz", 539 | "integrity": "sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==", 540 | "cpu": [ 541 | "riscv64" 542 | ], 543 | "dev": true, 544 | "optional": true, 545 | "os": [ 546 | "linux" 547 | ] 548 | }, 549 | "node_modules/@rollup/rollup-linux-x64-gnu": { 550 | "version": "4.9.1", 551 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.1.tgz", 552 | "integrity": "sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==", 553 | "cpu": [ 554 | "x64" 555 | ], 556 | "dev": true, 557 | "optional": true, 558 | "os": [ 559 | "linux" 560 | ] 561 | }, 562 | "node_modules/@rollup/rollup-linux-x64-musl": { 563 | "version": "4.9.1", 564 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.1.tgz", 565 | "integrity": "sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==", 566 | "cpu": [ 567 | "x64" 568 | ], 569 | "dev": true, 570 | "optional": true, 571 | "os": [ 572 | "linux" 573 | ] 574 | }, 575 | "node_modules/@rollup/rollup-win32-arm64-msvc": { 576 | "version": "4.9.1", 577 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.1.tgz", 578 | "integrity": "sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==", 579 | "cpu": [ 580 | "arm64" 581 | ], 582 | "dev": true, 583 | "optional": true, 584 | "os": [ 585 | "win32" 586 | ] 587 | }, 588 | "node_modules/@rollup/rollup-win32-ia32-msvc": { 589 | "version": "4.9.1", 590 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.1.tgz", 591 | "integrity": "sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==", 592 | "cpu": [ 593 | "ia32" 594 | ], 595 | "dev": true, 596 | "optional": true, 597 | "os": [ 598 | "win32" 599 | ] 600 | }, 601 | "node_modules/@rollup/rollup-win32-x64-msvc": { 602 | "version": "4.9.1", 603 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.1.tgz", 604 | "integrity": "sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==", 605 | "cpu": [ 606 | "x64" 607 | ], 608 | "dev": true, 609 | "optional": true, 610 | "os": [ 611 | "win32" 612 | ] 613 | }, 614 | "node_modules/@tsconfig/node18": { 615 | "version": "18.2.2", 616 | "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz", 617 | "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==", 618 | "dev": true 619 | }, 620 | "node_modules/@types/command-line-args": { 621 | "version": "5.2.0", 622 | "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", 623 | "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==" 624 | }, 625 | "node_modules/@types/command-line-usage": { 626 | "version": "5.0.2", 627 | "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", 628 | "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==" 629 | }, 630 | "node_modules/@types/flatbuffers": { 631 | "version": "1.10.3", 632 | "resolved": "https://registry.npmjs.org/@types/flatbuffers/-/flatbuffers-1.10.3.tgz", 633 | "integrity": "sha512-kwJQsAROanCiMXSLjcTLmYVBIJ9Qyuqs92SaDIcj2EII2KnDgZbiU7it1Z/JfZd1gmxw/lAahMysQ6ZM+j3Ryw==" 634 | }, 635 | "node_modules/@types/node": { 636 | "version": "18.19.3", 637 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz", 638 | "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==", 639 | "dev": true, 640 | "dependencies": { 641 | "undici-types": "~5.26.4" 642 | } 643 | }, 644 | "node_modules/@types/normalize-package-data": { 645 | "version": "2.4.4", 646 | "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", 647 | "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", 648 | "dev": true 649 | }, 650 | "node_modules/@types/pad-left": { 651 | "version": "2.1.1", 652 | "resolved": "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz", 653 | "integrity": "sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA==" 654 | }, 655 | "node_modules/@vitejs/plugin-vue": { 656 | "version": "4.5.2", 657 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.5.2.tgz", 658 | "integrity": "sha512-UGR3DlzLi/SaVBPX0cnSyE37vqxU3O6chn8l0HJNzQzDia6/Au2A4xKv+iIJW8w2daf80G7TYHhi1pAUjdZ0bQ==", 659 | "dev": true, 660 | "engines": { 661 | "node": "^14.18.0 || >=16.0.0" 662 | }, 663 | "peerDependencies": { 664 | "vite": "^4.0.0 || ^5.0.0", 665 | "vue": "^3.2.25" 666 | } 667 | }, 668 | "node_modules/@volar/language-core": { 669 | "version": "1.11.1", 670 | "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", 671 | "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", 672 | "dev": true, 673 | "dependencies": { 674 | "@volar/source-map": "1.11.1" 675 | } 676 | }, 677 | "node_modules/@volar/source-map": { 678 | "version": "1.11.1", 679 | "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", 680 | "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", 681 | "dev": true, 682 | "dependencies": { 683 | "muggle-string": "^0.3.1" 684 | } 685 | }, 686 | "node_modules/@volar/typescript": { 687 | "version": "1.11.1", 688 | "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", 689 | "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", 690 | "dev": true, 691 | "dependencies": { 692 | "@volar/language-core": "1.11.1", 693 | "path-browserify": "^1.0.1" 694 | } 695 | }, 696 | "node_modules/@vue/compiler-core": { 697 | "version": "3.3.13", 698 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.13.tgz", 699 | "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", 700 | "dependencies": { 701 | "@babel/parser": "^7.23.5", 702 | "@vue/shared": "3.3.13", 703 | "estree-walker": "^2.0.2", 704 | "source-map-js": "^1.0.2" 705 | } 706 | }, 707 | "node_modules/@vue/compiler-dom": { 708 | "version": "3.3.13", 709 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", 710 | "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", 711 | "dependencies": { 712 | "@vue/compiler-core": "3.3.13", 713 | "@vue/shared": "3.3.13" 714 | } 715 | }, 716 | "node_modules/@vue/compiler-sfc": { 717 | "version": "3.3.13", 718 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.13.tgz", 719 | "integrity": "sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==", 720 | "dependencies": { 721 | "@babel/parser": "^7.23.5", 722 | "@vue/compiler-core": "3.3.13", 723 | "@vue/compiler-dom": "3.3.13", 724 | "@vue/compiler-ssr": "3.3.13", 725 | "@vue/reactivity-transform": "3.3.13", 726 | "@vue/shared": "3.3.13", 727 | "estree-walker": "^2.0.2", 728 | "magic-string": "^0.30.5", 729 | "postcss": "^8.4.32", 730 | "source-map-js": "^1.0.2" 731 | } 732 | }, 733 | "node_modules/@vue/compiler-ssr": { 734 | "version": "3.3.13", 735 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz", 736 | "integrity": "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==", 737 | "dependencies": { 738 | "@vue/compiler-dom": "3.3.13", 739 | "@vue/shared": "3.3.13" 740 | } 741 | }, 742 | "node_modules/@vue/language-core": { 743 | "version": "1.8.25", 744 | "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.25.tgz", 745 | "integrity": "sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==", 746 | "dev": true, 747 | "dependencies": { 748 | "@volar/language-core": "~1.11.1", 749 | "@volar/source-map": "~1.11.1", 750 | "@vue/compiler-dom": "^3.3.0", 751 | "@vue/shared": "^3.3.0", 752 | "computeds": "^0.0.1", 753 | "minimatch": "^9.0.3", 754 | "muggle-string": "^0.3.1", 755 | "path-browserify": "^1.0.1", 756 | "vue-template-compiler": "^2.7.14" 757 | }, 758 | "peerDependencies": { 759 | "typescript": "*" 760 | }, 761 | "peerDependenciesMeta": { 762 | "typescript": { 763 | "optional": true 764 | } 765 | } 766 | }, 767 | "node_modules/@vue/reactivity": { 768 | "version": "3.3.13", 769 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.13.tgz", 770 | "integrity": "sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==", 771 | "dependencies": { 772 | "@vue/shared": "3.3.13" 773 | } 774 | }, 775 | "node_modules/@vue/reactivity-transform": { 776 | "version": "3.3.13", 777 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.13.tgz", 778 | "integrity": "sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==", 779 | "dependencies": { 780 | "@babel/parser": "^7.23.5", 781 | "@vue/compiler-core": "3.3.13", 782 | "@vue/shared": "3.3.13", 783 | "estree-walker": "^2.0.2", 784 | "magic-string": "^0.30.5" 785 | } 786 | }, 787 | "node_modules/@vue/runtime-core": { 788 | "version": "3.3.13", 789 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.13.tgz", 790 | "integrity": "sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==", 791 | "dependencies": { 792 | "@vue/reactivity": "3.3.13", 793 | "@vue/shared": "3.3.13" 794 | } 795 | }, 796 | "node_modules/@vue/runtime-dom": { 797 | "version": "3.3.13", 798 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.13.tgz", 799 | "integrity": "sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==", 800 | "dependencies": { 801 | "@vue/runtime-core": "3.3.13", 802 | "@vue/shared": "3.3.13", 803 | "csstype": "^3.1.3" 804 | } 805 | }, 806 | "node_modules/@vue/server-renderer": { 807 | "version": "3.3.13", 808 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.13.tgz", 809 | "integrity": "sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==", 810 | "dependencies": { 811 | "@vue/compiler-ssr": "3.3.13", 812 | "@vue/shared": "3.3.13" 813 | }, 814 | "peerDependencies": { 815 | "vue": "3.3.13" 816 | } 817 | }, 818 | "node_modules/@vue/shared": { 819 | "version": "3.3.13", 820 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.13.tgz", 821 | "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" 822 | }, 823 | "node_modules/@vue/tsconfig": { 824 | "version": "0.5.1", 825 | "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.5.1.tgz", 826 | "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==", 827 | "dev": true 828 | }, 829 | "node_modules/ansi-styles": { 830 | "version": "6.2.1", 831 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 832 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 833 | "dev": true, 834 | "engines": { 835 | "node": ">=12" 836 | }, 837 | "funding": { 838 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 839 | } 840 | }, 841 | "node_modules/apache-arrow": { 842 | "version": "11.0.0", 843 | "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-11.0.0.tgz", 844 | "integrity": "sha512-M8J4y+DimIyS44w2KOmVfzNHbTroR1oDpBKK6BYnlu8xVB41lxTz0yLmapo8/WJVAt5XcinAxMm14M771dm/rA==", 845 | "dependencies": { 846 | "@types/command-line-args": "5.2.0", 847 | "@types/command-line-usage": "5.0.2", 848 | "@types/flatbuffers": "*", 849 | "@types/node": "18.7.23", 850 | "@types/pad-left": "2.1.1", 851 | "command-line-args": "5.2.1", 852 | "command-line-usage": "6.1.3", 853 | "flatbuffers": "2.0.4", 854 | "json-bignum": "^0.0.3", 855 | "pad-left": "^2.1.0", 856 | "tslib": "^2.4.0" 857 | }, 858 | "bin": { 859 | "arrow2csv": "bin/arrow2csv.js" 860 | } 861 | }, 862 | "node_modules/apache-arrow/node_modules/@types/node": { 863 | "version": "18.7.23", 864 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", 865 | "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==" 866 | }, 867 | "node_modules/array-back": { 868 | "version": "3.1.0", 869 | "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", 870 | "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", 871 | "engines": { 872 | "node": ">=6" 873 | } 874 | }, 875 | "node_modules/balanced-match": { 876 | "version": "1.0.2", 877 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 878 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 879 | "dev": true 880 | }, 881 | "node_modules/brace-expansion": { 882 | "version": "2.0.1", 883 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 884 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 885 | "dev": true, 886 | "dependencies": { 887 | "balanced-match": "^1.0.0" 888 | } 889 | }, 890 | "node_modules/chalk": { 891 | "version": "2.4.2", 892 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 893 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 894 | "dependencies": { 895 | "ansi-styles": "^3.2.1", 896 | "escape-string-regexp": "^1.0.5", 897 | "supports-color": "^5.3.0" 898 | }, 899 | "engines": { 900 | "node": ">=4" 901 | } 902 | }, 903 | "node_modules/chalk/node_modules/ansi-styles": { 904 | "version": "3.2.1", 905 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 906 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 907 | "dependencies": { 908 | "color-convert": "^1.9.0" 909 | }, 910 | "engines": { 911 | "node": ">=4" 912 | } 913 | }, 914 | "node_modules/color-convert": { 915 | "version": "1.9.3", 916 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 917 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 918 | "dependencies": { 919 | "color-name": "1.1.3" 920 | } 921 | }, 922 | "node_modules/color-name": { 923 | "version": "1.1.3", 924 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 925 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 926 | }, 927 | "node_modules/command-line-args": { 928 | "version": "5.2.1", 929 | "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", 930 | "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", 931 | "dependencies": { 932 | "array-back": "^3.1.0", 933 | "find-replace": "^3.0.0", 934 | "lodash.camelcase": "^4.3.0", 935 | "typical": "^4.0.0" 936 | }, 937 | "engines": { 938 | "node": ">=4.0.0" 939 | } 940 | }, 941 | "node_modules/command-line-usage": { 942 | "version": "6.1.3", 943 | "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", 944 | "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", 945 | "dependencies": { 946 | "array-back": "^4.0.2", 947 | "chalk": "^2.4.2", 948 | "table-layout": "^1.0.2", 949 | "typical": "^5.2.0" 950 | }, 951 | "engines": { 952 | "node": ">=8.0.0" 953 | } 954 | }, 955 | "node_modules/command-line-usage/node_modules/array-back": { 956 | "version": "4.0.2", 957 | "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", 958 | "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", 959 | "engines": { 960 | "node": ">=8" 961 | } 962 | }, 963 | "node_modules/command-line-usage/node_modules/typical": { 964 | "version": "5.2.0", 965 | "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", 966 | "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", 967 | "engines": { 968 | "node": ">=8" 969 | } 970 | }, 971 | "node_modules/computeds": { 972 | "version": "0.0.1", 973 | "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", 974 | "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", 975 | "dev": true 976 | }, 977 | "node_modules/cross-spawn": { 978 | "version": "7.0.3", 979 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 980 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 981 | "dev": true, 982 | "dependencies": { 983 | "path-key": "^3.1.0", 984 | "shebang-command": "^2.0.0", 985 | "which": "^2.0.1" 986 | }, 987 | "engines": { 988 | "node": ">= 8" 989 | } 990 | }, 991 | "node_modules/csstype": { 992 | "version": "3.1.3", 993 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", 994 | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" 995 | }, 996 | "node_modules/de-indent": { 997 | "version": "1.0.2", 998 | "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", 999 | "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", 1000 | "dev": true 1001 | }, 1002 | "node_modules/deep-extend": { 1003 | "version": "0.6.0", 1004 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 1005 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 1006 | "engines": { 1007 | "node": ">=4.0.0" 1008 | } 1009 | }, 1010 | "node_modules/error-ex": { 1011 | "version": "1.3.2", 1012 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1013 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1014 | "dev": true, 1015 | "dependencies": { 1016 | "is-arrayish": "^0.2.1" 1017 | } 1018 | }, 1019 | "node_modules/esbuild": { 1020 | "version": "0.19.10", 1021 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.10.tgz", 1022 | "integrity": "sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==", 1023 | "dev": true, 1024 | "hasInstallScript": true, 1025 | "bin": { 1026 | "esbuild": "bin/esbuild" 1027 | }, 1028 | "engines": { 1029 | "node": ">=12" 1030 | }, 1031 | "optionalDependencies": { 1032 | "@esbuild/aix-ppc64": "0.19.10", 1033 | "@esbuild/android-arm": "0.19.10", 1034 | "@esbuild/android-arm64": "0.19.10", 1035 | "@esbuild/android-x64": "0.19.10", 1036 | "@esbuild/darwin-arm64": "0.19.10", 1037 | "@esbuild/darwin-x64": "0.19.10", 1038 | "@esbuild/freebsd-arm64": "0.19.10", 1039 | "@esbuild/freebsd-x64": "0.19.10", 1040 | "@esbuild/linux-arm": "0.19.10", 1041 | "@esbuild/linux-arm64": "0.19.10", 1042 | "@esbuild/linux-ia32": "0.19.10", 1043 | "@esbuild/linux-loong64": "0.19.10", 1044 | "@esbuild/linux-mips64el": "0.19.10", 1045 | "@esbuild/linux-ppc64": "0.19.10", 1046 | "@esbuild/linux-riscv64": "0.19.10", 1047 | "@esbuild/linux-s390x": "0.19.10", 1048 | "@esbuild/linux-x64": "0.19.10", 1049 | "@esbuild/netbsd-x64": "0.19.10", 1050 | "@esbuild/openbsd-x64": "0.19.10", 1051 | "@esbuild/sunos-x64": "0.19.10", 1052 | "@esbuild/win32-arm64": "0.19.10", 1053 | "@esbuild/win32-ia32": "0.19.10", 1054 | "@esbuild/win32-x64": "0.19.10" 1055 | } 1056 | }, 1057 | "node_modules/escape-string-regexp": { 1058 | "version": "1.0.5", 1059 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1060 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 1061 | "engines": { 1062 | "node": ">=0.8.0" 1063 | } 1064 | }, 1065 | "node_modules/estree-walker": { 1066 | "version": "2.0.2", 1067 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1068 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 1069 | }, 1070 | "node_modules/find-replace": { 1071 | "version": "3.0.0", 1072 | "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", 1073 | "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", 1074 | "dependencies": { 1075 | "array-back": "^3.0.1" 1076 | }, 1077 | "engines": { 1078 | "node": ">=4.0.0" 1079 | } 1080 | }, 1081 | "node_modules/flatbuffers": { 1082 | "version": "2.0.4", 1083 | "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-2.0.4.tgz", 1084 | "integrity": "sha512-4rUFVDPjSoP0tOII34oQf+72NKU7E088U5oX7kwICahft0UB2kOQ9wUzzCp+OHxByERIfxRDCgX5mP8Pjkfl0g==" 1085 | }, 1086 | "node_modules/fsevents": { 1087 | "version": "2.3.3", 1088 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1089 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1090 | "dev": true, 1091 | "hasInstallScript": true, 1092 | "optional": true, 1093 | "os": [ 1094 | "darwin" 1095 | ], 1096 | "engines": { 1097 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1098 | } 1099 | }, 1100 | "node_modules/function-bind": { 1101 | "version": "1.1.2", 1102 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 1103 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 1104 | "dev": true, 1105 | "funding": { 1106 | "url": "https://github.com/sponsors/ljharb" 1107 | } 1108 | }, 1109 | "node_modules/has-flag": { 1110 | "version": "3.0.0", 1111 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1112 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 1113 | "engines": { 1114 | "node": ">=4" 1115 | } 1116 | }, 1117 | "node_modules/hasown": { 1118 | "version": "2.0.0", 1119 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", 1120 | "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", 1121 | "dev": true, 1122 | "dependencies": { 1123 | "function-bind": "^1.1.2" 1124 | }, 1125 | "engines": { 1126 | "node": ">= 0.4" 1127 | } 1128 | }, 1129 | "node_modules/he": { 1130 | "version": "1.2.0", 1131 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 1132 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 1133 | "dev": true, 1134 | "bin": { 1135 | "he": "bin/he" 1136 | } 1137 | }, 1138 | "node_modules/hoist-non-react-statics": { 1139 | "version": "3.3.2", 1140 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", 1141 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", 1142 | "dependencies": { 1143 | "react-is": "^16.7.0" 1144 | } 1145 | }, 1146 | "node_modules/hosted-git-info": { 1147 | "version": "7.0.1", 1148 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", 1149 | "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", 1150 | "dev": true, 1151 | "dependencies": { 1152 | "lru-cache": "^10.0.1" 1153 | }, 1154 | "engines": { 1155 | "node": "^16.14.0 || >=18.0.0" 1156 | } 1157 | }, 1158 | "node_modules/is-arrayish": { 1159 | "version": "0.2.1", 1160 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1161 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", 1162 | "dev": true 1163 | }, 1164 | "node_modules/is-core-module": { 1165 | "version": "2.13.1", 1166 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", 1167 | "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", 1168 | "dev": true, 1169 | "dependencies": { 1170 | "hasown": "^2.0.0" 1171 | }, 1172 | "funding": { 1173 | "url": "https://github.com/sponsors/ljharb" 1174 | } 1175 | }, 1176 | "node_modules/isexe": { 1177 | "version": "2.0.0", 1178 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1179 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 1180 | "dev": true 1181 | }, 1182 | "node_modules/js-tokens": { 1183 | "version": "4.0.0", 1184 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1185 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1186 | }, 1187 | "node_modules/json-bignum": { 1188 | "version": "0.0.3", 1189 | "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", 1190 | "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==", 1191 | "engines": { 1192 | "node": ">=0.8" 1193 | } 1194 | }, 1195 | "node_modules/json-parse-even-better-errors": { 1196 | "version": "3.0.1", 1197 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", 1198 | "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", 1199 | "dev": true, 1200 | "engines": { 1201 | "node": "^14.17.0 || ^16.13.0 || >=18.0.0" 1202 | } 1203 | }, 1204 | "node_modules/lines-and-columns": { 1205 | "version": "2.0.4", 1206 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", 1207 | "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", 1208 | "dev": true, 1209 | "engines": { 1210 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1211 | } 1212 | }, 1213 | "node_modules/lodash.camelcase": { 1214 | "version": "4.3.0", 1215 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", 1216 | "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" 1217 | }, 1218 | "node_modules/loose-envify": { 1219 | "version": "1.4.0", 1220 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1221 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1222 | "dependencies": { 1223 | "js-tokens": "^3.0.0 || ^4.0.0" 1224 | }, 1225 | "bin": { 1226 | "loose-envify": "cli.js" 1227 | } 1228 | }, 1229 | "node_modules/lru-cache": { 1230 | "version": "10.1.0", 1231 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", 1232 | "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", 1233 | "dev": true, 1234 | "engines": { 1235 | "node": "14 || >=16.14" 1236 | } 1237 | }, 1238 | "node_modules/magic-string": { 1239 | "version": "0.30.5", 1240 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", 1241 | "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", 1242 | "dependencies": { 1243 | "@jridgewell/sourcemap-codec": "^1.4.15" 1244 | }, 1245 | "engines": { 1246 | "node": ">=12" 1247 | } 1248 | }, 1249 | "node_modules/memorystream": { 1250 | "version": "0.3.1", 1251 | "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", 1252 | "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", 1253 | "dev": true, 1254 | "engines": { 1255 | "node": ">= 0.10.0" 1256 | } 1257 | }, 1258 | "node_modules/minimatch": { 1259 | "version": "9.0.3", 1260 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", 1261 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", 1262 | "dev": true, 1263 | "dependencies": { 1264 | "brace-expansion": "^2.0.1" 1265 | }, 1266 | "engines": { 1267 | "node": ">=16 || 14 >=14.17" 1268 | }, 1269 | "funding": { 1270 | "url": "https://github.com/sponsors/isaacs" 1271 | } 1272 | }, 1273 | "node_modules/muggle-string": { 1274 | "version": "0.3.1", 1275 | "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", 1276 | "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", 1277 | "dev": true 1278 | }, 1279 | "node_modules/nanoid": { 1280 | "version": "3.3.7", 1281 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 1282 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 1283 | "funding": [ 1284 | { 1285 | "type": "github", 1286 | "url": "https://github.com/sponsors/ai" 1287 | } 1288 | ], 1289 | "bin": { 1290 | "nanoid": "bin/nanoid.cjs" 1291 | }, 1292 | "engines": { 1293 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1294 | } 1295 | }, 1296 | "node_modules/normalize-package-data": { 1297 | "version": "6.0.0", 1298 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", 1299 | "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", 1300 | "dev": true, 1301 | "dependencies": { 1302 | "hosted-git-info": "^7.0.0", 1303 | "is-core-module": "^2.8.1", 1304 | "semver": "^7.3.5", 1305 | "validate-npm-package-license": "^3.0.4" 1306 | }, 1307 | "engines": { 1308 | "node": "^16.14.0 || >=18.0.0" 1309 | } 1310 | }, 1311 | "node_modules/npm-run-all2": { 1312 | "version": "6.1.1", 1313 | "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.1.1.tgz", 1314 | "integrity": "sha512-lWLbkPZ5BSdXtN8lR+0rc8caKoPdymycpZksyDEC9MOBvfdwTXZ0uVhb7bMcGeXv2/BKtfQuo6Zn3zfc8rxNXA==", 1315 | "dev": true, 1316 | "dependencies": { 1317 | "ansi-styles": "^6.2.1", 1318 | "cross-spawn": "^7.0.3", 1319 | "memorystream": "^0.3.1", 1320 | "minimatch": "^9.0.0", 1321 | "pidtree": "^0.6.0", 1322 | "read-pkg": "^8.0.0", 1323 | "shell-quote": "^1.7.3" 1324 | }, 1325 | "bin": { 1326 | "npm-run-all": "bin/npm-run-all/index.js", 1327 | "npm-run-all2": "bin/npm-run-all/index.js", 1328 | "run-p": "bin/run-p/index.js", 1329 | "run-s": "bin/run-s/index.js" 1330 | }, 1331 | "engines": { 1332 | "node": "^14.18.0 || >=16.0.0", 1333 | "npm": ">= 8" 1334 | } 1335 | }, 1336 | "node_modules/object-assign": { 1337 | "version": "4.1.1", 1338 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1339 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1340 | "engines": { 1341 | "node": ">=0.10.0" 1342 | } 1343 | }, 1344 | "node_modules/pad-left": { 1345 | "version": "2.1.0", 1346 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", 1347 | "integrity": "sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA==", 1348 | "dependencies": { 1349 | "repeat-string": "^1.5.4" 1350 | }, 1351 | "engines": { 1352 | "node": ">=0.10.0" 1353 | } 1354 | }, 1355 | "node_modules/parse-json": { 1356 | "version": "7.1.1", 1357 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", 1358 | "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", 1359 | "dev": true, 1360 | "dependencies": { 1361 | "@babel/code-frame": "^7.21.4", 1362 | "error-ex": "^1.3.2", 1363 | "json-parse-even-better-errors": "^3.0.0", 1364 | "lines-and-columns": "^2.0.3", 1365 | "type-fest": "^3.8.0" 1366 | }, 1367 | "engines": { 1368 | "node": ">=16" 1369 | }, 1370 | "funding": { 1371 | "url": "https://github.com/sponsors/sindresorhus" 1372 | } 1373 | }, 1374 | "node_modules/parse-json/node_modules/type-fest": { 1375 | "version": "3.13.1", 1376 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", 1377 | "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", 1378 | "dev": true, 1379 | "engines": { 1380 | "node": ">=14.16" 1381 | }, 1382 | "funding": { 1383 | "url": "https://github.com/sponsors/sindresorhus" 1384 | } 1385 | }, 1386 | "node_modules/path-browserify": { 1387 | "version": "1.0.1", 1388 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", 1389 | "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", 1390 | "dev": true 1391 | }, 1392 | "node_modules/path-key": { 1393 | "version": "3.1.1", 1394 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1395 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1396 | "dev": true, 1397 | "engines": { 1398 | "node": ">=8" 1399 | } 1400 | }, 1401 | "node_modules/picocolors": { 1402 | "version": "1.0.0", 1403 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1404 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 1405 | }, 1406 | "node_modules/pidtree": { 1407 | "version": "0.6.0", 1408 | "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", 1409 | "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", 1410 | "dev": true, 1411 | "bin": { 1412 | "pidtree": "bin/pidtree.js" 1413 | }, 1414 | "engines": { 1415 | "node": ">=0.10" 1416 | } 1417 | }, 1418 | "node_modules/postcss": { 1419 | "version": "8.4.32", 1420 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", 1421 | "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", 1422 | "funding": [ 1423 | { 1424 | "type": "opencollective", 1425 | "url": "https://opencollective.com/postcss/" 1426 | }, 1427 | { 1428 | "type": "tidelift", 1429 | "url": "https://tidelift.com/funding/github/npm/postcss" 1430 | }, 1431 | { 1432 | "type": "github", 1433 | "url": "https://github.com/sponsors/ai" 1434 | } 1435 | ], 1436 | "dependencies": { 1437 | "nanoid": "^3.3.7", 1438 | "picocolors": "^1.0.0", 1439 | "source-map-js": "^1.0.2" 1440 | }, 1441 | "engines": { 1442 | "node": "^10 || ^12 || >=14" 1443 | } 1444 | }, 1445 | "node_modules/prop-types": { 1446 | "version": "15.8.1", 1447 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 1448 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 1449 | "dependencies": { 1450 | "loose-envify": "^1.4.0", 1451 | "object-assign": "^4.1.1", 1452 | "react-is": "^16.13.1" 1453 | } 1454 | }, 1455 | "node_modules/react": { 1456 | "version": "16.14.0", 1457 | "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", 1458 | "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", 1459 | "dependencies": { 1460 | "loose-envify": "^1.1.0", 1461 | "object-assign": "^4.1.1", 1462 | "prop-types": "^15.6.2" 1463 | }, 1464 | "engines": { 1465 | "node": ">=0.10.0" 1466 | } 1467 | }, 1468 | "node_modules/react-dom": { 1469 | "version": "16.14.0", 1470 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", 1471 | "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", 1472 | "dependencies": { 1473 | "loose-envify": "^1.1.0", 1474 | "object-assign": "^4.1.1", 1475 | "prop-types": "^15.6.2", 1476 | "scheduler": "^0.19.1" 1477 | }, 1478 | "peerDependencies": { 1479 | "react": "^16.14.0" 1480 | } 1481 | }, 1482 | "node_modules/react-is": { 1483 | "version": "16.13.1", 1484 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 1485 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 1486 | }, 1487 | "node_modules/read-pkg": { 1488 | "version": "8.1.0", 1489 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", 1490 | "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", 1491 | "dev": true, 1492 | "dependencies": { 1493 | "@types/normalize-package-data": "^2.4.1", 1494 | "normalize-package-data": "^6.0.0", 1495 | "parse-json": "^7.0.0", 1496 | "type-fest": "^4.2.0" 1497 | }, 1498 | "engines": { 1499 | "node": ">=16" 1500 | }, 1501 | "funding": { 1502 | "url": "https://github.com/sponsors/sindresorhus" 1503 | } 1504 | }, 1505 | "node_modules/reduce-flatten": { 1506 | "version": "2.0.0", 1507 | "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", 1508 | "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", 1509 | "engines": { 1510 | "node": ">=6" 1511 | } 1512 | }, 1513 | "node_modules/repeat-string": { 1514 | "version": "1.6.1", 1515 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 1516 | "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", 1517 | "engines": { 1518 | "node": ">=0.10" 1519 | } 1520 | }, 1521 | "node_modules/rollup": { 1522 | "version": "4.9.1", 1523 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.1.tgz", 1524 | "integrity": "sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==", 1525 | "dev": true, 1526 | "bin": { 1527 | "rollup": "dist/bin/rollup" 1528 | }, 1529 | "engines": { 1530 | "node": ">=18.0.0", 1531 | "npm": ">=8.0.0" 1532 | }, 1533 | "optionalDependencies": { 1534 | "@rollup/rollup-android-arm-eabi": "4.9.1", 1535 | "@rollup/rollup-android-arm64": "4.9.1", 1536 | "@rollup/rollup-darwin-arm64": "4.9.1", 1537 | "@rollup/rollup-darwin-x64": "4.9.1", 1538 | "@rollup/rollup-linux-arm-gnueabihf": "4.9.1", 1539 | "@rollup/rollup-linux-arm64-gnu": "4.9.1", 1540 | "@rollup/rollup-linux-arm64-musl": "4.9.1", 1541 | "@rollup/rollup-linux-riscv64-gnu": "4.9.1", 1542 | "@rollup/rollup-linux-x64-gnu": "4.9.1", 1543 | "@rollup/rollup-linux-x64-musl": "4.9.1", 1544 | "@rollup/rollup-win32-arm64-msvc": "4.9.1", 1545 | "@rollup/rollup-win32-ia32-msvc": "4.9.1", 1546 | "@rollup/rollup-win32-x64-msvc": "4.9.1", 1547 | "fsevents": "~2.3.2" 1548 | } 1549 | }, 1550 | "node_modules/scheduler": { 1551 | "version": "0.19.1", 1552 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", 1553 | "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", 1554 | "dependencies": { 1555 | "loose-envify": "^1.1.0", 1556 | "object-assign": "^4.1.1" 1557 | } 1558 | }, 1559 | "node_modules/semver": { 1560 | "version": "7.5.4", 1561 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", 1562 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", 1563 | "dev": true, 1564 | "dependencies": { 1565 | "lru-cache": "^6.0.0" 1566 | }, 1567 | "bin": { 1568 | "semver": "bin/semver.js" 1569 | }, 1570 | "engines": { 1571 | "node": ">=10" 1572 | } 1573 | }, 1574 | "node_modules/semver/node_modules/lru-cache": { 1575 | "version": "6.0.0", 1576 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1577 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1578 | "dev": true, 1579 | "dependencies": { 1580 | "yallist": "^4.0.0" 1581 | }, 1582 | "engines": { 1583 | "node": ">=10" 1584 | } 1585 | }, 1586 | "node_modules/shebang-command": { 1587 | "version": "2.0.0", 1588 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1589 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1590 | "dev": true, 1591 | "dependencies": { 1592 | "shebang-regex": "^3.0.0" 1593 | }, 1594 | "engines": { 1595 | "node": ">=8" 1596 | } 1597 | }, 1598 | "node_modules/shebang-regex": { 1599 | "version": "3.0.0", 1600 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1601 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1602 | "dev": true, 1603 | "engines": { 1604 | "node": ">=8" 1605 | } 1606 | }, 1607 | "node_modules/shell-quote": { 1608 | "version": "1.8.1", 1609 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", 1610 | "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", 1611 | "dev": true, 1612 | "funding": { 1613 | "url": "https://github.com/sponsors/ljharb" 1614 | } 1615 | }, 1616 | "node_modules/source-map-js": { 1617 | "version": "1.0.2", 1618 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1619 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1620 | "engines": { 1621 | "node": ">=0.10.0" 1622 | } 1623 | }, 1624 | "node_modules/spdx-correct": { 1625 | "version": "3.2.0", 1626 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", 1627 | "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", 1628 | "dev": true, 1629 | "dependencies": { 1630 | "spdx-expression-parse": "^3.0.0", 1631 | "spdx-license-ids": "^3.0.0" 1632 | } 1633 | }, 1634 | "node_modules/spdx-exceptions": { 1635 | "version": "2.3.0", 1636 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", 1637 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", 1638 | "dev": true 1639 | }, 1640 | "node_modules/spdx-expression-parse": { 1641 | "version": "3.0.1", 1642 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 1643 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 1644 | "dev": true, 1645 | "dependencies": { 1646 | "spdx-exceptions": "^2.1.0", 1647 | "spdx-license-ids": "^3.0.0" 1648 | } 1649 | }, 1650 | "node_modules/spdx-license-ids": { 1651 | "version": "3.0.16", 1652 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", 1653 | "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", 1654 | "dev": true 1655 | }, 1656 | "node_modules/streamlit-component-lib": { 1657 | "version": "2.0.0", 1658 | "resolved": "https://registry.npmjs.org/streamlit-component-lib/-/streamlit-component-lib-2.0.0.tgz", 1659 | "integrity": "sha512-ekLjskU4Cz+zSLkTC9jpppv2hb8jlA3z2h+TtwGUGuwMKrGLrvTpzLJI1ibPuI+bZ60mLHVI1GP/OyNb7K7UjA==", 1660 | "dependencies": { 1661 | "apache-arrow": "^11.0.0", 1662 | "hoist-non-react-statics": "^3.3.2", 1663 | "react": "^16.14.0", 1664 | "react-dom": "^16.14.0" 1665 | } 1666 | }, 1667 | "node_modules/supports-color": { 1668 | "version": "5.5.0", 1669 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1670 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1671 | "dependencies": { 1672 | "has-flag": "^3.0.0" 1673 | }, 1674 | "engines": { 1675 | "node": ">=4" 1676 | } 1677 | }, 1678 | "node_modules/table-layout": { 1679 | "version": "1.0.2", 1680 | "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", 1681 | "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", 1682 | "dependencies": { 1683 | "array-back": "^4.0.1", 1684 | "deep-extend": "~0.6.0", 1685 | "typical": "^5.2.0", 1686 | "wordwrapjs": "^4.0.0" 1687 | }, 1688 | "engines": { 1689 | "node": ">=8.0.0" 1690 | } 1691 | }, 1692 | "node_modules/table-layout/node_modules/array-back": { 1693 | "version": "4.0.2", 1694 | "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", 1695 | "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", 1696 | "engines": { 1697 | "node": ">=8" 1698 | } 1699 | }, 1700 | "node_modules/table-layout/node_modules/typical": { 1701 | "version": "5.2.0", 1702 | "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", 1703 | "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", 1704 | "engines": { 1705 | "node": ">=8" 1706 | } 1707 | }, 1708 | "node_modules/tslib": { 1709 | "version": "2.6.2", 1710 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", 1711 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" 1712 | }, 1713 | "node_modules/type-fest": { 1714 | "version": "4.8.3", 1715 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.3.tgz", 1716 | "integrity": "sha512-//BaTm14Q/gHBn09xlnKNqfI8t6bmdzx2DXYfPBNofN0WUybCEUDcbCWcTa0oF09lzLjZgPphXAsvRiMK0V6Bw==", 1717 | "dev": true, 1718 | "engines": { 1719 | "node": ">=16" 1720 | }, 1721 | "funding": { 1722 | "url": "https://github.com/sponsors/sindresorhus" 1723 | } 1724 | }, 1725 | "node_modules/typescript": { 1726 | "version": "5.3.3", 1727 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", 1728 | "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", 1729 | "devOptional": true, 1730 | "bin": { 1731 | "tsc": "bin/tsc", 1732 | "tsserver": "bin/tsserver" 1733 | }, 1734 | "engines": { 1735 | "node": ">=14.17" 1736 | } 1737 | }, 1738 | "node_modules/typical": { 1739 | "version": "4.0.0", 1740 | "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", 1741 | "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", 1742 | "engines": { 1743 | "node": ">=8" 1744 | } 1745 | }, 1746 | "node_modules/undici-types": { 1747 | "version": "5.26.5", 1748 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 1749 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", 1750 | "dev": true 1751 | }, 1752 | "node_modules/validate-npm-package-license": { 1753 | "version": "3.0.4", 1754 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 1755 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 1756 | "dev": true, 1757 | "dependencies": { 1758 | "spdx-correct": "^3.0.0", 1759 | "spdx-expression-parse": "^3.0.0" 1760 | } 1761 | }, 1762 | "node_modules/vite": { 1763 | "version": "5.0.10", 1764 | "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", 1765 | "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", 1766 | "dev": true, 1767 | "dependencies": { 1768 | "esbuild": "^0.19.3", 1769 | "postcss": "^8.4.32", 1770 | "rollup": "^4.2.0" 1771 | }, 1772 | "bin": { 1773 | "vite": "bin/vite.js" 1774 | }, 1775 | "engines": { 1776 | "node": "^18.0.0 || >=20.0.0" 1777 | }, 1778 | "funding": { 1779 | "url": "https://github.com/vitejs/vite?sponsor=1" 1780 | }, 1781 | "optionalDependencies": { 1782 | "fsevents": "~2.3.3" 1783 | }, 1784 | "peerDependencies": { 1785 | "@types/node": "^18.0.0 || >=20.0.0", 1786 | "less": "*", 1787 | "lightningcss": "^1.21.0", 1788 | "sass": "*", 1789 | "stylus": "*", 1790 | "sugarss": "*", 1791 | "terser": "^5.4.0" 1792 | }, 1793 | "peerDependenciesMeta": { 1794 | "@types/node": { 1795 | "optional": true 1796 | }, 1797 | "less": { 1798 | "optional": true 1799 | }, 1800 | "lightningcss": { 1801 | "optional": true 1802 | }, 1803 | "sass": { 1804 | "optional": true 1805 | }, 1806 | "stylus": { 1807 | "optional": true 1808 | }, 1809 | "sugarss": { 1810 | "optional": true 1811 | }, 1812 | "terser": { 1813 | "optional": true 1814 | } 1815 | } 1816 | }, 1817 | "node_modules/vue": { 1818 | "version": "3.3.13", 1819 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.13.tgz", 1820 | "integrity": "sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==", 1821 | "dependencies": { 1822 | "@vue/compiler-dom": "3.3.13", 1823 | "@vue/compiler-sfc": "3.3.13", 1824 | "@vue/runtime-dom": "3.3.13", 1825 | "@vue/server-renderer": "3.3.13", 1826 | "@vue/shared": "3.3.13" 1827 | }, 1828 | "peerDependencies": { 1829 | "typescript": "*" 1830 | }, 1831 | "peerDependenciesMeta": { 1832 | "typescript": { 1833 | "optional": true 1834 | } 1835 | } 1836 | }, 1837 | "node_modules/vue-template-compiler": { 1838 | "version": "2.7.15", 1839 | "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz", 1840 | "integrity": "sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==", 1841 | "dev": true, 1842 | "dependencies": { 1843 | "de-indent": "^1.0.2", 1844 | "he": "^1.2.0" 1845 | } 1846 | }, 1847 | "node_modules/vue-tsc": { 1848 | "version": "1.8.25", 1849 | "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.25.tgz", 1850 | "integrity": "sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==", 1851 | "dev": true, 1852 | "dependencies": { 1853 | "@volar/typescript": "~1.11.1", 1854 | "@vue/language-core": "1.8.25", 1855 | "semver": "^7.5.4" 1856 | }, 1857 | "bin": { 1858 | "vue-tsc": "bin/vue-tsc.js" 1859 | }, 1860 | "peerDependencies": { 1861 | "typescript": "*" 1862 | } 1863 | }, 1864 | "node_modules/which": { 1865 | "version": "2.0.2", 1866 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1867 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1868 | "dev": true, 1869 | "dependencies": { 1870 | "isexe": "^2.0.0" 1871 | }, 1872 | "bin": { 1873 | "node-which": "bin/node-which" 1874 | }, 1875 | "engines": { 1876 | "node": ">= 8" 1877 | } 1878 | }, 1879 | "node_modules/wordwrapjs": { 1880 | "version": "4.0.1", 1881 | "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", 1882 | "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", 1883 | "dependencies": { 1884 | "reduce-flatten": "^2.0.0", 1885 | "typical": "^5.2.0" 1886 | }, 1887 | "engines": { 1888 | "node": ">=8.0.0" 1889 | } 1890 | }, 1891 | "node_modules/wordwrapjs/node_modules/typical": { 1892 | "version": "5.2.0", 1893 | "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", 1894 | "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", 1895 | "engines": { 1896 | "node": ">=8" 1897 | } 1898 | }, 1899 | "node_modules/yallist": { 1900 | "version": "4.0.0", 1901 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1902 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1903 | "dev": true 1904 | } 1905 | } 1906 | } 1907 | -------------------------------------------------------------------------------- /my_component/frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my_component", 3 | "version": "0.0.1", 4 | "private": true, 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "run-p type-check \"build-only {@}\" --", 9 | "preview": "vite preview", 10 | "build-only": "vite build", 11 | "type-check": "vue-tsc --build --force" 12 | }, 13 | "dependencies": { 14 | "streamlit-component-lib": "^2.0.0", 15 | "vue": "^3.3.11" 16 | }, 17 | "devDependencies": { 18 | "@tsconfig/node18": "^18.2.2", 19 | "@types/node": "^18.19.3", 20 | "@vitejs/plugin-vue": "^4.5.2", 21 | "@vue/tsconfig": "^0.5.0", 22 | "npm-run-all2": "^6.1.1", 23 | "typescript": "~5.3.0", 24 | "vite": "^5.0.10", 25 | "vue-tsc": "^1.8.25" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /my_component/frontend/src/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 29 | 30 | 41 | -------------------------------------------------------------------------------- /my_component/frontend/src/MyComponent.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 32 | -------------------------------------------------------------------------------- /my_component/frontend/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /my_component/frontend/src/streamlit/StreamlitVue.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Vue.js specific composables 3 | */ 4 | import { onMounted, onUpdated } from "vue" 5 | import { Streamlit } from "streamlit-component-lib" 6 | 7 | export function useStreamlit() { 8 | /** 9 | * Optional Streamlit Vue-based setup. 10 | * 11 | * You are not required call this function on your Streamlit 12 | * component. If you decide not to call it, you should implement the 13 | * `onMounted` and `onUpdated` functions in your own component, 14 | * so that your plugin properly resizes. 15 | */ 16 | 17 | onMounted((): void => { 18 | // After we're rendered for the first time, tell Streamlit that our height 19 | // has changed. 20 | Streamlit.setFrameHeight() 21 | }) 22 | 23 | onUpdated((): void => { 24 | // After we're updated, tell Streamlit that our height may have changed. 25 | Streamlit.setFrameHeight() 26 | }) 27 | } 28 | -------------------------------------------------------------------------------- /my_component/frontend/src/streamlit/WithStreamlitConnection.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 76 | 77 | 83 | -------------------------------------------------------------------------------- /my_component/frontend/src/streamlit/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright 2018-2020 Streamlit Inc. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | export { useStreamlit } from "./StreamlitVue" 18 | -------------------------------------------------------------------------------- /my_component/frontend/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.dom.json", 3 | "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], 4 | "exclude": ["src/**/__tests__/*"], 5 | "compilerOptions": { 6 | "allowJs": true, 7 | "composite": true, 8 | "noEmit": true, 9 | "baseUrl": ".", 10 | "paths": { 11 | "@/*": ["./src/*"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /my_component/frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { 5 | "path": "./tsconfig.node.json" 6 | }, 7 | { 8 | "path": "./tsconfig.app.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /my_component/frontend/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/node18/tsconfig.json", 3 | "include": [ 4 | "vite.config.*", 5 | "vitest.config.*", 6 | "cypress.config.*", 7 | "nightwatch.conf.*", 8 | "playwright.config.*" 9 | ], 10 | "compilerOptions": { 11 | "composite": true, 12 | "noEmit": true, 13 | "module": "ESNext", 14 | "moduleResolution": "Bundler", 15 | "types": ["node"] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /my_component/frontend/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | 3 | import { defineConfig } from 'vite' 4 | import vue from '@vitejs/plugin-vue' 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | base: './', 9 | plugins: [ 10 | vue(), 11 | ], 12 | resolve: { 13 | alias: { 14 | '@': fileURLToPath(new URL('./src', import.meta.url)) 15 | } 16 | } 17 | }) 18 | -------------------------------------------------------------------------------- /quickstart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gabrieltempass/streamlit-component-vue-vite-template/ab115cb2abf63bf338c4ad6ef257c4e79d522655/quickstart.png -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | import setuptools 4 | 5 | this_directory = Path(__file__).parent 6 | long_description = (this_directory / "README.md").read_text() 7 | 8 | setuptools.setup( 9 | name="streamlit-custom-component", 10 | version="0.0.1", 11 | author="John Smith", 12 | author_email="john@example.com", 13 | description="Streamlit component that allows you to do X", 14 | long_description=long_description, 15 | long_description_content_type="text/markdown", 16 | url="", 17 | packages=setuptools.find_packages(), 18 | include_package_data=True, 19 | classifiers=[], 20 | python_requires=">=3.7", 21 | install_requires=[ 22 | # By definition, a Custom Component depends on Streamlit. 23 | # If your component has other Python dependencies, list 24 | # them here. 25 | "streamlit >= 0.63", 26 | ], 27 | ) 28 | --------------------------------------------------------------------------------