├── .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 | 
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 |
11 | We're sorry but the website doesn't work properly without JavaScript enabled.
12 | Please enable it to continue.
13 |
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 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
29 |
30 |
41 |
--------------------------------------------------------------------------------
/my_component/frontend/src/MyComponent.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hello, {{ args.name }}!
4 | Click Me!
5 |
6 |
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 |
2 |
3 |
4 |
5 |
Component Error
6 |
Message: {{ componentError }}
7 |
8 |
13 |
18 |
19 |
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 |
--------------------------------------------------------------------------------