nishantguvvada
commited on
Commit
•
a8ecc9d
1
Parent(s):
e6724f7
Upload 20 files
Browse files- .gitattributes +1 -0
- frontend/README.md +104 -0
- frontend/Streamlit-Image-Carousel-master/README.md +56 -0
- frontend/Streamlit-Image-Carousel-master/__init__.py +31 -0
- frontend/Streamlit-Image-Carousel-master/sample_recording.gif +3 -0
- frontend/package-lock.json +1174 -0
- frontend/package.json +30 -0
- frontend/public/bootstrap.min.css +0 -0
- frontend/public/bootstrap.min.css.map +0 -0
- frontend/public/build/bundle.js +0 -0
- frontend/public/build/bundle.js.map +0 -0
- frontend/public/index.html +16 -0
- frontend/rollup.config.js +79 -0
- frontend/src/ImageGallery.svelte +50 -0
- frontend/src/main.ts +27 -0
- frontend/src/streamlit/ArrowTable.ts +224 -0
- frontend/src/streamlit/WithStreamlitConnection.svelte +71 -0
- frontend/src/streamlit/index.ts +10 -0
- frontend/src/streamlit/setStreamlitLifecycle.ts +26 -0
- frontend/src/streamlit/streamlit.ts +198 -0
- frontend/tsconfig.json +20 -0
.gitattributes
CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
frontend/Streamlit-Image-Carousel-master/sample_recording.gif filter=lfs diff=lfs merge=lfs -text
|
frontend/README.md
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*Looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)*
|
2 |
+
|
3 |
+
---
|
4 |
+
|
5 |
+
# svelte app
|
6 |
+
|
7 |
+
This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template.
|
8 |
+
|
9 |
+
To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit):
|
10 |
+
|
11 |
+
```bash
|
12 |
+
npx degit sveltejs/template svelte-app
|
13 |
+
cd svelte-app
|
14 |
+
```
|
15 |
+
|
16 |
+
*Note that you will need to have [Node.js](https://nodejs.org) installed.*
|
17 |
+
|
18 |
+
|
19 |
+
## Get started
|
20 |
+
|
21 |
+
Install the dependencies...
|
22 |
+
|
23 |
+
```bash
|
24 |
+
cd svelte-app
|
25 |
+
npm install
|
26 |
+
```
|
27 |
+
|
28 |
+
...then start [Rollup](https://rollupjs.org):
|
29 |
+
|
30 |
+
```bash
|
31 |
+
npm run dev
|
32 |
+
```
|
33 |
+
|
34 |
+
Navigate to [localhost:5000](http://localhost:5000). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes.
|
35 |
+
|
36 |
+
By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the `sirv` commands in package.json to include the option `--host 0.0.0.0`.
|
37 |
+
|
38 |
+
|
39 |
+
## Building and running in production mode
|
40 |
+
|
41 |
+
To create an optimised version of the app:
|
42 |
+
|
43 |
+
```bash
|
44 |
+
npm run build
|
45 |
+
```
|
46 |
+
|
47 |
+
You can run the newly built app with `npm run start`. This uses [sirv](https://github.com/lukeed/sirv), which is included in your package.json's `dependencies` so that the app will work when you deploy to platforms like [Heroku](https://heroku.com).
|
48 |
+
|
49 |
+
|
50 |
+
## Single-page app mode
|
51 |
+
|
52 |
+
By default, sirv will only respond to requests that match files in `public`. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere.
|
53 |
+
|
54 |
+
If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for *any* path. You can make it so by editing the `"start"` command in package.json:
|
55 |
+
|
56 |
+
```js
|
57 |
+
"start": "sirv public --single"
|
58 |
+
```
|
59 |
+
|
60 |
+
## Using TypeScript
|
61 |
+
|
62 |
+
This template comes with a script to set up a TypeScript development environment, you can run it immediately after cloning the template with:
|
63 |
+
|
64 |
+
```bash
|
65 |
+
node scripts/setupTypeScript.js
|
66 |
+
```
|
67 |
+
|
68 |
+
Or remove the script via:
|
69 |
+
|
70 |
+
```bash
|
71 |
+
rm scripts/setupTypeScript.js
|
72 |
+
```
|
73 |
+
|
74 |
+
## Deploying to the web
|
75 |
+
|
76 |
+
### With [Vercel](https://vercel.com)
|
77 |
+
|
78 |
+
Install `vercel` if you haven't already:
|
79 |
+
|
80 |
+
```bash
|
81 |
+
npm install -g vercel
|
82 |
+
```
|
83 |
+
|
84 |
+
Then, from within your project folder:
|
85 |
+
|
86 |
+
```bash
|
87 |
+
cd public
|
88 |
+
vercel deploy --name my-project
|
89 |
+
```
|
90 |
+
|
91 |
+
### With [surge](https://surge.sh/)
|
92 |
+
|
93 |
+
Install `surge` if you haven't already:
|
94 |
+
|
95 |
+
```bash
|
96 |
+
npm install -g surge
|
97 |
+
```
|
98 |
+
|
99 |
+
Then, from within your project folder:
|
100 |
+
|
101 |
+
```bash
|
102 |
+
npm run build
|
103 |
+
surge public my-project.surge.sh
|
104 |
+
```
|
frontend/Streamlit-Image-Carousel-master/README.md
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
### Streamlit Image-Carousel-Component
|
2 |
+
|
3 |
+
Streamlit component for image-carousel:
|
4 |
+
|
5 |
+
|
6 |
+
|
7 |
+
#### Usage:
|
8 |
+
|
9 |
+
- First install the streamlit library : `pip install streamlit`
|
10 |
+
|
11 |
+
- Then, install the node packages inside `frontend` directory : `npm i`
|
12 |
+
|
13 |
+
- Then, build the node modules : `npm run build`
|
14 |
+
|
15 |
+
- Finally, run the streamlit app : `streamlit run __init__.py`
|
16 |
+
|
17 |
+
|
18 |
+
|
19 |
+
#### Example:
|
20 |
+
|
21 |
+
```python
|
22 |
+
import streamlit as st
|
23 |
+
import streamlit.components.v1 as components
|
24 |
+
|
25 |
+
def main():
|
26 |
+
|
27 |
+
imageCarouselComponent = components.declare_component("image-carousel-component", path="frontend/public")
|
28 |
+
|
29 |
+
imageUrls = [
|
30 |
+
"https://images.unsplash.com/photo-1522093007474-d86e9bf7ba6f?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=764&q=80",
|
31 |
+
"https://images.unsplash.com/photo-1610016302534-6f67f1c968d8?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1075&q=80",
|
32 |
+
"https://images.unsplash.com/photo-1516550893923-42d28e5677af?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=872&q=80",
|
33 |
+
"https://images.unsplash.com/photo-1541343672885-9be56236302a?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80",
|
34 |
+
"https://images.unsplash.com/photo-1512470876302-972faa2aa9a4?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
35 |
+
"https://images.unsplash.com/photo-1528728329032-2972f65dfb3f?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
36 |
+
"https://images.unsplash.com/photo-1557744813-846c28d0d0db?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1118&q=80",
|
37 |
+
"https://images.unsplash.com/photo-1513635269975-59663e0ac1ad?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
38 |
+
"https://images.unsplash.com/photo-1595867818082-083862f3d630?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
39 |
+
"https://images.unsplash.com/photo-1622214366189-72b19cc61597?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80",
|
40 |
+
"https://images.unsplash.com/photo-1558180077-09f158c76707?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=764&q=80",
|
41 |
+
"https://images.unsplash.com/photo-1520106212299-d99c443e4568?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80",
|
42 |
+
"https://images.unsplash.com/photo-1534430480872-3498386e7856?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
43 |
+
"https://images.unsplash.com/photo-1571317084911-8899d61cc464?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
44 |
+
"https://images.unsplash.com/photo-1624704765325-fd4868c9702e?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=764&q=80",
|
45 |
+
]
|
46 |
+
selectedImageUrl = imageCarouselComponent(imageUrls=imageUrls, height=200)
|
47 |
+
|
48 |
+
if selectedImageUrl is not None:
|
49 |
+
st.image(selectedImageUrl)
|
50 |
+
|
51 |
+
if __name__ == "__main__":
|
52 |
+
main()
|
53 |
+
```
|
54 |
+
|
55 |
+
![result](sample_recording.gif)
|
56 |
+
|
frontend/Streamlit-Image-Carousel-master/__init__.py
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import streamlit.components.v1 as components
|
3 |
+
|
4 |
+
def main():
|
5 |
+
|
6 |
+
imageCarouselComponent = components.declare_component("image-carousel-component", path="frontend/public")
|
7 |
+
|
8 |
+
imageUrls = [
|
9 |
+
"https://images.unsplash.com/photo-1522093007474-d86e9bf7ba6f?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=764&q=80",
|
10 |
+
"https://images.unsplash.com/photo-1610016302534-6f67f1c968d8?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1075&q=80",
|
11 |
+
"https://images.unsplash.com/photo-1516550893923-42d28e5677af?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=872&q=80",
|
12 |
+
"https://images.unsplash.com/photo-1541343672885-9be56236302a?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80",
|
13 |
+
"https://images.unsplash.com/photo-1512470876302-972faa2aa9a4?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
14 |
+
"https://images.unsplash.com/photo-1528728329032-2972f65dfb3f?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
15 |
+
"https://images.unsplash.com/photo-1557744813-846c28d0d0db?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1118&q=80",
|
16 |
+
"https://images.unsplash.com/photo-1513635269975-59663e0ac1ad?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
17 |
+
"https://images.unsplash.com/photo-1595867818082-083862f3d630?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
18 |
+
"https://images.unsplash.com/photo-1622214366189-72b19cc61597?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80",
|
19 |
+
"https://images.unsplash.com/photo-1558180077-09f158c76707?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=764&q=80",
|
20 |
+
"https://images.unsplash.com/photo-1520106212299-d99c443e4568?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80",
|
21 |
+
"https://images.unsplash.com/photo-1534430480872-3498386e7856?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
22 |
+
"https://images.unsplash.com/photo-1571317084911-8899d61cc464?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80",
|
23 |
+
"https://images.unsplash.com/photo-1624704765325-fd4868c9702e?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=764&q=80",
|
24 |
+
]
|
25 |
+
selectedImageUrl = imageCarouselComponent(imageUrls=imageUrls, height=200)
|
26 |
+
|
27 |
+
if selectedImageUrl is not None:
|
28 |
+
st.image(selectedImageUrl)
|
29 |
+
|
30 |
+
if __name__ == "__main__":
|
31 |
+
main()
|
frontend/Streamlit-Image-Carousel-master/sample_recording.gif
ADDED
Git LFS Details
|
frontend/package-lock.json
ADDED
@@ -0,0 +1,1174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "streamlit_component_svelte_template",
|
3 |
+
"version": "2.0.0",
|
4 |
+
"lockfileVersion": 1,
|
5 |
+
"requires": true,
|
6 |
+
"dependencies": {
|
7 |
+
"@babel/code-frame": {
|
8 |
+
"version": "7.16.0",
|
9 |
+
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz",
|
10 |
+
"integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==",
|
11 |
+
"dev": true,
|
12 |
+
"requires": {
|
13 |
+
"@babel/highlight": "^7.16.0"
|
14 |
+
}
|
15 |
+
},
|
16 |
+
"@babel/helper-validator-identifier": {
|
17 |
+
"version": "7.15.7",
|
18 |
+
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
|
19 |
+
"integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
|
20 |
+
"dev": true
|
21 |
+
},
|
22 |
+
"@babel/highlight": {
|
23 |
+
"version": "7.16.0",
|
24 |
+
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz",
|
25 |
+
"integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==",
|
26 |
+
"dev": true,
|
27 |
+
"requires": {
|
28 |
+
"@babel/helper-validator-identifier": "^7.15.7",
|
29 |
+
"chalk": "^2.0.0",
|
30 |
+
"js-tokens": "^4.0.0"
|
31 |
+
}
|
32 |
+
},
|
33 |
+
"@polka/url": {
|
34 |
+
"version": "1.0.0-next.21",
|
35 |
+
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
|
36 |
+
"integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g=="
|
37 |
+
},
|
38 |
+
"@rollup/plugin-commonjs": {
|
39 |
+
"version": "12.0.0",
|
40 |
+
"resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-12.0.0.tgz",
|
41 |
+
"integrity": "sha512-8+mDQt1QUmN+4Y9D3yCG8AJNewuTSLYPJVzKKUZ+lGeQrI+bV12Tc5HCyt2WdlnG6ihIL/DPbKRJlB40DX40mw==",
|
42 |
+
"dev": true,
|
43 |
+
"requires": {
|
44 |
+
"@rollup/pluginutils": "^3.0.8",
|
45 |
+
"commondir": "^1.0.1",
|
46 |
+
"estree-walker": "^1.0.1",
|
47 |
+
"glob": "^7.1.2",
|
48 |
+
"is-reference": "^1.1.2",
|
49 |
+
"magic-string": "^0.25.2",
|
50 |
+
"resolve": "^1.11.0"
|
51 |
+
}
|
52 |
+
},
|
53 |
+
"@rollup/plugin-node-resolve": {
|
54 |
+
"version": "8.4.0",
|
55 |
+
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz",
|
56 |
+
"integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==",
|
57 |
+
"dev": true,
|
58 |
+
"requires": {
|
59 |
+
"@rollup/pluginutils": "^3.1.0",
|
60 |
+
"@types/resolve": "1.17.1",
|
61 |
+
"builtin-modules": "^3.1.0",
|
62 |
+
"deep-freeze": "^0.0.1",
|
63 |
+
"deepmerge": "^4.2.2",
|
64 |
+
"is-module": "^1.0.0",
|
65 |
+
"resolve": "^1.17.0"
|
66 |
+
}
|
67 |
+
},
|
68 |
+
"@rollup/plugin-typescript": {
|
69 |
+
"version": "4.1.2",
|
70 |
+
"resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-4.1.2.tgz",
|
71 |
+
"integrity": "sha512-+7UlGat/99e2JbmGNnIauxwEhYLwrL7adO/tSJxUN57xrrS3Ps+ZzYpLCDGPZJ57j+ZJTZLLN89KXW9JMEB+jg==",
|
72 |
+
"dev": true,
|
73 |
+
"requires": {
|
74 |
+
"@rollup/pluginutils": "^3.0.1",
|
75 |
+
"resolve": "^1.14.1"
|
76 |
+
}
|
77 |
+
},
|
78 |
+
"@rollup/pluginutils": {
|
79 |
+
"version": "3.1.0",
|
80 |
+
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
|
81 |
+
"integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
|
82 |
+
"dev": true,
|
83 |
+
"requires": {
|
84 |
+
"@types/estree": "0.0.39",
|
85 |
+
"estree-walker": "^1.0.1",
|
86 |
+
"picomatch": "^2.2.2"
|
87 |
+
}
|
88 |
+
},
|
89 |
+
"@tsconfig/svelte": {
|
90 |
+
"version": "1.0.13",
|
91 |
+
"resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-1.0.13.tgz",
|
92 |
+
"integrity": "sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA==",
|
93 |
+
"dev": true
|
94 |
+
},
|
95 |
+
"@types/estree": {
|
96 |
+
"version": "0.0.39",
|
97 |
+
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
|
98 |
+
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
|
99 |
+
"dev": true
|
100 |
+
},
|
101 |
+
"@types/flatbuffers": {
|
102 |
+
"version": "1.10.0",
|
103 |
+
"resolved": "https://registry.npmjs.org/@types/flatbuffers/-/flatbuffers-1.10.0.tgz",
|
104 |
+
"integrity": "sha512-7btbphLrKvo5yl/5CC2OCxUSMx1wV1wvGT1qDXkSt7yi00/YW7E8k6qzXqJHsp+WU0eoG7r6MTQQXI9lIvd0qA=="
|
105 |
+
},
|
106 |
+
"@types/node": {
|
107 |
+
"version": "16.11.6",
|
108 |
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz",
|
109 |
+
"integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==",
|
110 |
+
"dev": true
|
111 |
+
},
|
112 |
+
"@types/pug": {
|
113 |
+
"version": "2.0.5",
|
114 |
+
"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.5.tgz",
|
115 |
+
"integrity": "sha512-LOnASQoeNZMkzexRuyqcBBDZ6rS+rQxUMkmj5A0PkhhiSZivLIuz6Hxyr1mkGoEZEkk66faROmpMi4fFkrKsBA==",
|
116 |
+
"dev": true
|
117 |
+
},
|
118 |
+
"@types/resolve": {
|
119 |
+
"version": "1.17.1",
|
120 |
+
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
|
121 |
+
"integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
|
122 |
+
"dev": true,
|
123 |
+
"requires": {
|
124 |
+
"@types/node": "*"
|
125 |
+
}
|
126 |
+
},
|
127 |
+
"@types/sass": {
|
128 |
+
"version": "1.43.0",
|
129 |
+
"resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.0.tgz",
|
130 |
+
"integrity": "sha512-DPSXNJ1rYLo88GyF9tuB4bsYGfpKI1a4+wOQmc+LI1SUoocm9QLRSpz0GxxuyjmJsYFIQo/dDlRSSpIXngff+w==",
|
131 |
+
"dev": true,
|
132 |
+
"requires": {
|
133 |
+
"@types/node": "*"
|
134 |
+
}
|
135 |
+
},
|
136 |
+
"@types/text-encoding-utf-8": {
|
137 |
+
"version": "1.0.2",
|
138 |
+
"resolved": "https://registry.npmjs.org/@types/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz",
|
139 |
+
"integrity": "sha512-AQ6zewa0ucLJvtUi5HsErbOFKAcQfRLt9zFLlUOvcXBy2G36a+ZDpCHSGdzJVUD8aNURtIjh9aSjCStNMRCcRQ=="
|
140 |
+
},
|
141 |
+
"ansi-styles": {
|
142 |
+
"version": "3.2.1",
|
143 |
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
144 |
+
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
145 |
+
"requires": {
|
146 |
+
"color-convert": "^1.9.0"
|
147 |
+
}
|
148 |
+
},
|
149 |
+
"anymatch": {
|
150 |
+
"version": "3.1.2",
|
151 |
+
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
|
152 |
+
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
|
153 |
+
"dev": true,
|
154 |
+
"requires": {
|
155 |
+
"normalize-path": "^3.0.0",
|
156 |
+
"picomatch": "^2.0.4"
|
157 |
+
}
|
158 |
+
},
|
159 |
+
"apache-arrow": {
|
160 |
+
"version": "0.17.0",
|
161 |
+
"resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-0.17.0.tgz",
|
162 |
+
"integrity": "sha512-cbgSx/tzGgnC1qeUySXnAsSsoxhDykNINqr1D3U5pRwf0/Q0ztVccV3/VRW6gUR+lcOFawk6FtyYwmU+KjglbQ==",
|
163 |
+
"requires": {
|
164 |
+
"@types/flatbuffers": "^1.9.1",
|
165 |
+
"@types/node": "^12.0.4",
|
166 |
+
"@types/text-encoding-utf-8": "^1.0.1",
|
167 |
+
"command-line-args": "5.0.2",
|
168 |
+
"command-line-usage": "5.0.5",
|
169 |
+
"flatbuffers": "1.11.0",
|
170 |
+
"json-bignum": "^0.0.3",
|
171 |
+
"pad-left": "^2.1.0",
|
172 |
+
"text-encoding-utf-8": "^1.0.2",
|
173 |
+
"tslib": "^1.9.3"
|
174 |
+
},
|
175 |
+
"dependencies": {
|
176 |
+
"@types/node": {
|
177 |
+
"version": "12.20.36",
|
178 |
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.36.tgz",
|
179 |
+
"integrity": "sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA=="
|
180 |
+
},
|
181 |
+
"tslib": {
|
182 |
+
"version": "1.14.1",
|
183 |
+
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
184 |
+
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
185 |
+
}
|
186 |
+
}
|
187 |
+
},
|
188 |
+
"argv-tools": {
|
189 |
+
"version": "0.1.2",
|
190 |
+
"resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.2.tgz",
|
191 |
+
"integrity": "sha512-wxqoymY0BEu9NblZVQiOTOAiJUjPhaa/kbNMjC2h6bnrmUSgnxKgWJo3lzXvi3bHJRwXyqK/dHzMlZVRT89Cxg==",
|
192 |
+
"requires": {
|
193 |
+
"array-back": "^2.0.0",
|
194 |
+
"find-replace": "^2.0.1"
|
195 |
+
}
|
196 |
+
},
|
197 |
+
"array-back": {
|
198 |
+
"version": "2.0.0",
|
199 |
+
"resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
|
200 |
+
"integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
|
201 |
+
"requires": {
|
202 |
+
"typical": "^2.6.1"
|
203 |
+
}
|
204 |
+
},
|
205 |
+
"balanced-match": {
|
206 |
+
"version": "1.0.2",
|
207 |
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
208 |
+
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
209 |
+
"dev": true
|
210 |
+
},
|
211 |
+
"binary-extensions": {
|
212 |
+
"version": "2.2.0",
|
213 |
+
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
214 |
+
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
|
215 |
+
"dev": true
|
216 |
+
},
|
217 |
+
"brace-expansion": {
|
218 |
+
"version": "1.1.11",
|
219 |
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
220 |
+
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
221 |
+
"dev": true,
|
222 |
+
"requires": {
|
223 |
+
"balanced-match": "^1.0.0",
|
224 |
+
"concat-map": "0.0.1"
|
225 |
+
}
|
226 |
+
},
|
227 |
+
"braces": {
|
228 |
+
"version": "3.0.2",
|
229 |
+
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
230 |
+
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
231 |
+
"dev": true,
|
232 |
+
"requires": {
|
233 |
+
"fill-range": "^7.0.1"
|
234 |
+
}
|
235 |
+
},
|
236 |
+
"buffer-crc32": {
|
237 |
+
"version": "0.2.13",
|
238 |
+
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
239 |
+
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
|
240 |
+
"dev": true
|
241 |
+
},
|
242 |
+
"buffer-from": {
|
243 |
+
"version": "1.1.2",
|
244 |
+
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
245 |
+
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
|
246 |
+
"dev": true
|
247 |
+
},
|
248 |
+
"builtin-modules": {
|
249 |
+
"version": "3.2.0",
|
250 |
+
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz",
|
251 |
+
"integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==",
|
252 |
+
"dev": true
|
253 |
+
},
|
254 |
+
"callsites": {
|
255 |
+
"version": "3.1.0",
|
256 |
+
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
257 |
+
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
|
258 |
+
"dev": true
|
259 |
+
},
|
260 |
+
"chalk": {
|
261 |
+
"version": "2.4.2",
|
262 |
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
263 |
+
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
264 |
+
"requires": {
|
265 |
+
"ansi-styles": "^3.2.1",
|
266 |
+
"escape-string-regexp": "^1.0.5",
|
267 |
+
"supports-color": "^5.3.0"
|
268 |
+
}
|
269 |
+
},
|
270 |
+
"chokidar": {
|
271 |
+
"version": "3.5.2",
|
272 |
+
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
|
273 |
+
"integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
|
274 |
+
"dev": true,
|
275 |
+
"requires": {
|
276 |
+
"anymatch": "~3.1.2",
|
277 |
+
"braces": "~3.0.2",
|
278 |
+
"fsevents": "~2.3.2",
|
279 |
+
"glob-parent": "~5.1.2",
|
280 |
+
"is-binary-path": "~2.1.0",
|
281 |
+
"is-glob": "~4.0.1",
|
282 |
+
"normalize-path": "~3.0.0",
|
283 |
+
"readdirp": "~3.6.0"
|
284 |
+
}
|
285 |
+
},
|
286 |
+
"color-convert": {
|
287 |
+
"version": "1.9.3",
|
288 |
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
289 |
+
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
290 |
+
"requires": {
|
291 |
+
"color-name": "1.1.3"
|
292 |
+
}
|
293 |
+
},
|
294 |
+
"color-name": {
|
295 |
+
"version": "1.1.3",
|
296 |
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
297 |
+
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
298 |
+
},
|
299 |
+
"command-line-args": {
|
300 |
+
"version": "5.0.2",
|
301 |
+
"resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz",
|
302 |
+
"integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==",
|
303 |
+
"requires": {
|
304 |
+
"argv-tools": "^0.1.1",
|
305 |
+
"array-back": "^2.0.0",
|
306 |
+
"find-replace": "^2.0.1",
|
307 |
+
"lodash.camelcase": "^4.3.0",
|
308 |
+
"typical": "^2.6.1"
|
309 |
+
}
|
310 |
+
},
|
311 |
+
"command-line-usage": {
|
312 |
+
"version": "5.0.5",
|
313 |
+
"resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz",
|
314 |
+
"integrity": "sha512-d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==",
|
315 |
+
"requires": {
|
316 |
+
"array-back": "^2.0.0",
|
317 |
+
"chalk": "^2.4.1",
|
318 |
+
"table-layout": "^0.4.3",
|
319 |
+
"typical": "^2.6.1"
|
320 |
+
}
|
321 |
+
},
|
322 |
+
"commander": {
|
323 |
+
"version": "2.20.3",
|
324 |
+
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
325 |
+
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
|
326 |
+
"dev": true
|
327 |
+
},
|
328 |
+
"commondir": {
|
329 |
+
"version": "1.0.1",
|
330 |
+
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
|
331 |
+
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
|
332 |
+
"dev": true
|
333 |
+
},
|
334 |
+
"concat-map": {
|
335 |
+
"version": "0.0.1",
|
336 |
+
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
337 |
+
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
338 |
+
"dev": true
|
339 |
+
},
|
340 |
+
"console-clear": {
|
341 |
+
"version": "1.1.1",
|
342 |
+
"resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz",
|
343 |
+
"integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ=="
|
344 |
+
},
|
345 |
+
"deep-extend": {
|
346 |
+
"version": "0.6.0",
|
347 |
+
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
348 |
+
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
|
349 |
+
},
|
350 |
+
"deep-freeze": {
|
351 |
+
"version": "0.0.1",
|
352 |
+
"resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz",
|
353 |
+
"integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=",
|
354 |
+
"dev": true
|
355 |
+
},
|
356 |
+
"deepmerge": {
|
357 |
+
"version": "4.2.2",
|
358 |
+
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
|
359 |
+
"integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
|
360 |
+
"dev": true
|
361 |
+
},
|
362 |
+
"detect-indent": {
|
363 |
+
"version": "6.1.0",
|
364 |
+
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
|
365 |
+
"integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
|
366 |
+
"dev": true
|
367 |
+
},
|
368 |
+
"es6-promise": {
|
369 |
+
"version": "3.3.1",
|
370 |
+
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
|
371 |
+
"integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=",
|
372 |
+
"dev": true
|
373 |
+
},
|
374 |
+
"escape-string-regexp": {
|
375 |
+
"version": "1.0.5",
|
376 |
+
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
377 |
+
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
378 |
+
},
|
379 |
+
"estree-walker": {
|
380 |
+
"version": "1.0.1",
|
381 |
+
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
|
382 |
+
"integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
|
383 |
+
"dev": true
|
384 |
+
},
|
385 |
+
"event-target-shim": {
|
386 |
+
"version": "5.0.1",
|
387 |
+
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
|
388 |
+
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
|
389 |
+
},
|
390 |
+
"fill-range": {
|
391 |
+
"version": "7.0.1",
|
392 |
+
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
393 |
+
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
394 |
+
"dev": true,
|
395 |
+
"requires": {
|
396 |
+
"to-regex-range": "^5.0.1"
|
397 |
+
}
|
398 |
+
},
|
399 |
+
"find-replace": {
|
400 |
+
"version": "2.0.1",
|
401 |
+
"resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz",
|
402 |
+
"integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==",
|
403 |
+
"requires": {
|
404 |
+
"array-back": "^2.0.0",
|
405 |
+
"test-value": "^3.0.0"
|
406 |
+
}
|
407 |
+
},
|
408 |
+
"flatbuffers": {
|
409 |
+
"version": "1.11.0",
|
410 |
+
"resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.11.0.tgz",
|
411 |
+
"integrity": "sha512-0PqFKtXI4MjxomI7jO4g5XfLPm/15g2R+5WGCHBGYGh0ihQiypnHlJ6bMmkkrAe0GzZ4d7PDAfCONKIPUxNF+A=="
|
412 |
+
},
|
413 |
+
"fs.realpath": {
|
414 |
+
"version": "1.0.0",
|
415 |
+
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
416 |
+
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
417 |
+
"dev": true
|
418 |
+
},
|
419 |
+
"fsevents": {
|
420 |
+
"version": "2.3.2",
|
421 |
+
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
422 |
+
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
423 |
+
"dev": true,
|
424 |
+
"optional": true
|
425 |
+
},
|
426 |
+
"function-bind": {
|
427 |
+
"version": "1.1.1",
|
428 |
+
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
429 |
+
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
|
430 |
+
"dev": true
|
431 |
+
},
|
432 |
+
"get-port": {
|
433 |
+
"version": "3.2.0",
|
434 |
+
"resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
|
435 |
+
"integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw="
|
436 |
+
},
|
437 |
+
"glob": {
|
438 |
+
"version": "7.2.0",
|
439 |
+
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
|
440 |
+
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
|
441 |
+
"dev": true,
|
442 |
+
"requires": {
|
443 |
+
"fs.realpath": "^1.0.0",
|
444 |
+
"inflight": "^1.0.4",
|
445 |
+
"inherits": "2",
|
446 |
+
"minimatch": "^3.0.4",
|
447 |
+
"once": "^1.3.0",
|
448 |
+
"path-is-absolute": "^1.0.0"
|
449 |
+
}
|
450 |
+
},
|
451 |
+
"glob-parent": {
|
452 |
+
"version": "5.1.2",
|
453 |
+
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
454 |
+
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
455 |
+
"dev": true,
|
456 |
+
"requires": {
|
457 |
+
"is-glob": "^4.0.1"
|
458 |
+
}
|
459 |
+
},
|
460 |
+
"graceful-fs": {
|
461 |
+
"version": "4.2.8",
|
462 |
+
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
|
463 |
+
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
|
464 |
+
"dev": true
|
465 |
+
},
|
466 |
+
"has": {
|
467 |
+
"version": "1.0.3",
|
468 |
+
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
469 |
+
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
470 |
+
"dev": true,
|
471 |
+
"requires": {
|
472 |
+
"function-bind": "^1.1.1"
|
473 |
+
}
|
474 |
+
},
|
475 |
+
"has-flag": {
|
476 |
+
"version": "3.0.0",
|
477 |
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
478 |
+
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
479 |
+
},
|
480 |
+
"import-fresh": {
|
481 |
+
"version": "3.3.0",
|
482 |
+
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
|
483 |
+
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
|
484 |
+
"dev": true,
|
485 |
+
"requires": {
|
486 |
+
"parent-module": "^1.0.0",
|
487 |
+
"resolve-from": "^4.0.0"
|
488 |
+
}
|
489 |
+
},
|
490 |
+
"inflight": {
|
491 |
+
"version": "1.0.6",
|
492 |
+
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
493 |
+
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
494 |
+
"dev": true,
|
495 |
+
"requires": {
|
496 |
+
"once": "^1.3.0",
|
497 |
+
"wrappy": "1"
|
498 |
+
}
|
499 |
+
},
|
500 |
+
"inherits": {
|
501 |
+
"version": "2.0.4",
|
502 |
+
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
503 |
+
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
504 |
+
"dev": true
|
505 |
+
},
|
506 |
+
"is-binary-path": {
|
507 |
+
"version": "2.1.0",
|
508 |
+
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
509 |
+
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
510 |
+
"dev": true,
|
511 |
+
"requires": {
|
512 |
+
"binary-extensions": "^2.0.0"
|
513 |
+
}
|
514 |
+
},
|
515 |
+
"is-core-module": {
|
516 |
+
"version": "2.8.0",
|
517 |
+
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
|
518 |
+
"integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
|
519 |
+
"dev": true,
|
520 |
+
"requires": {
|
521 |
+
"has": "^1.0.3"
|
522 |
+
}
|
523 |
+
},
|
524 |
+
"is-extglob": {
|
525 |
+
"version": "2.1.1",
|
526 |
+
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
527 |
+
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
528 |
+
"dev": true
|
529 |
+
},
|
530 |
+
"is-glob": {
|
531 |
+
"version": "4.0.3",
|
532 |
+
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
533 |
+
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
534 |
+
"dev": true,
|
535 |
+
"requires": {
|
536 |
+
"is-extglob": "^2.1.1"
|
537 |
+
}
|
538 |
+
},
|
539 |
+
"is-module": {
|
540 |
+
"version": "1.0.0",
|
541 |
+
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
|
542 |
+
"integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
|
543 |
+
"dev": true
|
544 |
+
},
|
545 |
+
"is-number": {
|
546 |
+
"version": "7.0.0",
|
547 |
+
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
548 |
+
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
549 |
+
"dev": true
|
550 |
+
},
|
551 |
+
"is-reference": {
|
552 |
+
"version": "1.2.1",
|
553 |
+
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
|
554 |
+
"integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
|
555 |
+
"dev": true,
|
556 |
+
"requires": {
|
557 |
+
"@types/estree": "*"
|
558 |
+
}
|
559 |
+
},
|
560 |
+
"jest-worker": {
|
561 |
+
"version": "24.9.0",
|
562 |
+
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
|
563 |
+
"integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
|
564 |
+
"dev": true,
|
565 |
+
"requires": {
|
566 |
+
"merge-stream": "^2.0.0",
|
567 |
+
"supports-color": "^6.1.0"
|
568 |
+
},
|
569 |
+
"dependencies": {
|
570 |
+
"supports-color": {
|
571 |
+
"version": "6.1.0",
|
572 |
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
|
573 |
+
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
|
574 |
+
"dev": true,
|
575 |
+
"requires": {
|
576 |
+
"has-flag": "^3.0.0"
|
577 |
+
}
|
578 |
+
}
|
579 |
+
}
|
580 |
+
},
|
581 |
+
"js-tokens": {
|
582 |
+
"version": "4.0.0",
|
583 |
+
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
584 |
+
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
585 |
+
"dev": true
|
586 |
+
},
|
587 |
+
"json-bignum": {
|
588 |
+
"version": "0.0.3",
|
589 |
+
"resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz",
|
590 |
+
"integrity": "sha1-QRY7UENsdz2CQk28IO1w23YEuNc="
|
591 |
+
},
|
592 |
+
"kleur": {
|
593 |
+
"version": "3.0.3",
|
594 |
+
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
|
595 |
+
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
|
596 |
+
},
|
597 |
+
"livereload": {
|
598 |
+
"version": "0.9.3",
|
599 |
+
"resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz",
|
600 |
+
"integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==",
|
601 |
+
"dev": true,
|
602 |
+
"requires": {
|
603 |
+
"chokidar": "^3.5.0",
|
604 |
+
"livereload-js": "^3.3.1",
|
605 |
+
"opts": ">= 1.2.0",
|
606 |
+
"ws": "^7.4.3"
|
607 |
+
}
|
608 |
+
},
|
609 |
+
"livereload-js": {
|
610 |
+
"version": "3.3.2",
|
611 |
+
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz",
|
612 |
+
"integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==",
|
613 |
+
"dev": true
|
614 |
+
},
|
615 |
+
"local-access": {
|
616 |
+
"version": "1.1.0",
|
617 |
+
"resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz",
|
618 |
+
"integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw=="
|
619 |
+
},
|
620 |
+
"lodash.camelcase": {
|
621 |
+
"version": "4.3.0",
|
622 |
+
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
|
623 |
+
"integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
|
624 |
+
},
|
625 |
+
"lodash.padend": {
|
626 |
+
"version": "4.6.1",
|
627 |
+
"resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
|
628 |
+
"integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="
|
629 |
+
},
|
630 |
+
"magic-string": {
|
631 |
+
"version": "0.25.7",
|
632 |
+
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
|
633 |
+
"integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
|
634 |
+
"dev": true,
|
635 |
+
"requires": {
|
636 |
+
"sourcemap-codec": "^1.4.4"
|
637 |
+
}
|
638 |
+
},
|
639 |
+
"merge-stream": {
|
640 |
+
"version": "2.0.0",
|
641 |
+
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
|
642 |
+
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
|
643 |
+
"dev": true
|
644 |
+
},
|
645 |
+
"mime": {
|
646 |
+
"version": "2.5.2",
|
647 |
+
"resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
|
648 |
+
"integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg=="
|
649 |
+
},
|
650 |
+
"min-indent": {
|
651 |
+
"version": "1.0.1",
|
652 |
+
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
|
653 |
+
"integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
|
654 |
+
"dev": true
|
655 |
+
},
|
656 |
+
"minimatch": {
|
657 |
+
"version": "3.0.4",
|
658 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
659 |
+
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
660 |
+
"dev": true,
|
661 |
+
"requires": {
|
662 |
+
"brace-expansion": "^1.1.7"
|
663 |
+
}
|
664 |
+
},
|
665 |
+
"minimist": {
|
666 |
+
"version": "1.2.5",
|
667 |
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
668 |
+
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
669 |
+
"dev": true
|
670 |
+
},
|
671 |
+
"mkdirp": {
|
672 |
+
"version": "0.5.5",
|
673 |
+
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
674 |
+
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
675 |
+
"dev": true,
|
676 |
+
"requires": {
|
677 |
+
"minimist": "^1.2.5"
|
678 |
+
}
|
679 |
+
},
|
680 |
+
"mri": {
|
681 |
+
"version": "1.2.0",
|
682 |
+
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
|
683 |
+
"integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
|
684 |
+
},
|
685 |
+
"normalize-path": {
|
686 |
+
"version": "3.0.0",
|
687 |
+
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
688 |
+
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
689 |
+
"dev": true
|
690 |
+
},
|
691 |
+
"once": {
|
692 |
+
"version": "1.4.0",
|
693 |
+
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
694 |
+
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
695 |
+
"dev": true,
|
696 |
+
"requires": {
|
697 |
+
"wrappy": "1"
|
698 |
+
}
|
699 |
+
},
|
700 |
+
"opts": {
|
701 |
+
"version": "2.0.2",
|
702 |
+
"resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz",
|
703 |
+
"integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==",
|
704 |
+
"dev": true
|
705 |
+
},
|
706 |
+
"pad-left": {
|
707 |
+
"version": "2.1.0",
|
708 |
+
"resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
|
709 |
+
"integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
|
710 |
+
"requires": {
|
711 |
+
"repeat-string": "^1.5.4"
|
712 |
+
}
|
713 |
+
},
|
714 |
+
"parent-module": {
|
715 |
+
"version": "1.0.1",
|
716 |
+
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
|
717 |
+
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
|
718 |
+
"dev": true,
|
719 |
+
"requires": {
|
720 |
+
"callsites": "^3.0.0"
|
721 |
+
}
|
722 |
+
},
|
723 |
+
"path-is-absolute": {
|
724 |
+
"version": "1.0.1",
|
725 |
+
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
726 |
+
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
727 |
+
"dev": true
|
728 |
+
},
|
729 |
+
"path-parse": {
|
730 |
+
"version": "1.0.7",
|
731 |
+
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
732 |
+
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
733 |
+
"dev": true
|
734 |
+
},
|
735 |
+
"picomatch": {
|
736 |
+
"version": "2.3.0",
|
737 |
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
|
738 |
+
"integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
|
739 |
+
"dev": true
|
740 |
+
},
|
741 |
+
"randombytes": {
|
742 |
+
"version": "2.1.0",
|
743 |
+
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
744 |
+
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
|
745 |
+
"dev": true,
|
746 |
+
"requires": {
|
747 |
+
"safe-buffer": "^5.1.0"
|
748 |
+
}
|
749 |
+
},
|
750 |
+
"readdirp": {
|
751 |
+
"version": "3.6.0",
|
752 |
+
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
753 |
+
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
754 |
+
"dev": true,
|
755 |
+
"requires": {
|
756 |
+
"picomatch": "^2.2.1"
|
757 |
+
}
|
758 |
+
},
|
759 |
+
"reduce-flatten": {
|
760 |
+
"version": "1.0.1",
|
761 |
+
"resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
|
762 |
+
"integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc="
|
763 |
+
},
|
764 |
+
"repeat-string": {
|
765 |
+
"version": "1.6.1",
|
766 |
+
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
|
767 |
+
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
|
768 |
+
},
|
769 |
+
"require-relative": {
|
770 |
+
"version": "0.8.7",
|
771 |
+
"resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
|
772 |
+
"integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
|
773 |
+
"dev": true
|
774 |
+
},
|
775 |
+
"resolve": {
|
776 |
+
"version": "1.20.0",
|
777 |
+
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
|
778 |
+
"integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
|
779 |
+
"dev": true,
|
780 |
+
"requires": {
|
781 |
+
"is-core-module": "^2.2.0",
|
782 |
+
"path-parse": "^1.0.6"
|
783 |
+
}
|
784 |
+
},
|
785 |
+
"resolve-from": {
|
786 |
+
"version": "4.0.0",
|
787 |
+
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
|
788 |
+
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
789 |
+
"dev": true
|
790 |
+
},
|
791 |
+
"rimraf": {
|
792 |
+
"version": "2.7.1",
|
793 |
+
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
794 |
+
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
795 |
+
"dev": true,
|
796 |
+
"requires": {
|
797 |
+
"glob": "^7.1.3"
|
798 |
+
}
|
799 |
+
},
|
800 |
+
"rollup": {
|
801 |
+
"version": "2.59.0",
|
802 |
+
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.59.0.tgz",
|
803 |
+
"integrity": "sha512-l7s90JQhCQ6JyZjKgo7Lq1dKh2RxatOM+Jr6a9F7WbS9WgKbocyUSeLmZl8evAse7y96Ae98L2k1cBOwWD8nHw==",
|
804 |
+
"dev": true,
|
805 |
+
"requires": {
|
806 |
+
"fsevents": "~2.3.2"
|
807 |
+
}
|
808 |
+
},
|
809 |
+
"rollup-plugin-livereload": {
|
810 |
+
"version": "1.3.0",
|
811 |
+
"resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-1.3.0.tgz",
|
812 |
+
"integrity": "sha512-abyqXaB21+nFHo+vJULBqfzNx6zXABC19UyvqgDfdoxR/8pFAd041GO+GIUe8ZYC2DbuMUmioh1Lvbk14YLZgw==",
|
813 |
+
"dev": true,
|
814 |
+
"requires": {
|
815 |
+
"livereload": "^0.9.1"
|
816 |
+
}
|
817 |
+
},
|
818 |
+
"rollup-plugin-svelte": {
|
819 |
+
"version": "6.1.1",
|
820 |
+
"resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz",
|
821 |
+
"integrity": "sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow==",
|
822 |
+
"dev": true,
|
823 |
+
"requires": {
|
824 |
+
"require-relative": "^0.8.7",
|
825 |
+
"rollup-pluginutils": "^2.8.2",
|
826 |
+
"sourcemap-codec": "^1.4.8"
|
827 |
+
}
|
828 |
+
},
|
829 |
+
"rollup-plugin-terser": {
|
830 |
+
"version": "5.3.1",
|
831 |
+
"resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz",
|
832 |
+
"integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==",
|
833 |
+
"dev": true,
|
834 |
+
"requires": {
|
835 |
+
"@babel/code-frame": "^7.5.5",
|
836 |
+
"jest-worker": "^24.9.0",
|
837 |
+
"rollup-pluginutils": "^2.8.2",
|
838 |
+
"serialize-javascript": "^4.0.0",
|
839 |
+
"terser": "^4.6.2"
|
840 |
+
}
|
841 |
+
},
|
842 |
+
"rollup-pluginutils": {
|
843 |
+
"version": "2.8.2",
|
844 |
+
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
|
845 |
+
"integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
|
846 |
+
"dev": true,
|
847 |
+
"requires": {
|
848 |
+
"estree-walker": "^0.6.1"
|
849 |
+
},
|
850 |
+
"dependencies": {
|
851 |
+
"estree-walker": {
|
852 |
+
"version": "0.6.1",
|
853 |
+
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
|
854 |
+
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
|
855 |
+
"dev": true
|
856 |
+
}
|
857 |
+
}
|
858 |
+
},
|
859 |
+
"sade": {
|
860 |
+
"version": "1.7.4",
|
861 |
+
"resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz",
|
862 |
+
"integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==",
|
863 |
+
"requires": {
|
864 |
+
"mri": "^1.1.0"
|
865 |
+
}
|
866 |
+
},
|
867 |
+
"safe-buffer": {
|
868 |
+
"version": "5.2.1",
|
869 |
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
870 |
+
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
871 |
+
"dev": true
|
872 |
+
},
|
873 |
+
"sander": {
|
874 |
+
"version": "0.5.1",
|
875 |
+
"resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
|
876 |
+
"integrity": "sha1-dB4kXiMfB8r7b98PEzrfohalAq0=",
|
877 |
+
"dev": true,
|
878 |
+
"requires": {
|
879 |
+
"es6-promise": "^3.1.2",
|
880 |
+
"graceful-fs": "^4.1.3",
|
881 |
+
"mkdirp": "^0.5.1",
|
882 |
+
"rimraf": "^2.5.2"
|
883 |
+
}
|
884 |
+
},
|
885 |
+
"semiver": {
|
886 |
+
"version": "1.1.0",
|
887 |
+
"resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
|
888 |
+
"integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg=="
|
889 |
+
},
|
890 |
+
"serialize-javascript": {
|
891 |
+
"version": "4.0.0",
|
892 |
+
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
|
893 |
+
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
|
894 |
+
"dev": true,
|
895 |
+
"requires": {
|
896 |
+
"randombytes": "^2.1.0"
|
897 |
+
}
|
898 |
+
},
|
899 |
+
"sirv": {
|
900 |
+
"version": "1.0.18",
|
901 |
+
"resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.18.tgz",
|
902 |
+
"integrity": "sha512-f2AOPogZmXgJ9Ma2M22ZEhc1dNtRIzcEkiflMFeVTRq+OViOZMvH1IPMVOwrKaxpSaHioBJiDR0SluRqGa7atA==",
|
903 |
+
"requires": {
|
904 |
+
"@polka/url": "^1.0.0-next.20",
|
905 |
+
"mime": "^2.3.1",
|
906 |
+
"totalist": "^1.0.0"
|
907 |
+
}
|
908 |
+
},
|
909 |
+
"sirv-cli": {
|
910 |
+
"version": "1.0.14",
|
911 |
+
"resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-1.0.14.tgz",
|
912 |
+
"integrity": "sha512-yyUTNr984ANKDloqepkYbBSqvx3buwYg2sQKPWjSU+IBia5loaoka2If8N9CMwt8AfP179cdEl7kYJ//iWJHjQ==",
|
913 |
+
"requires": {
|
914 |
+
"console-clear": "^1.1.0",
|
915 |
+
"get-port": "^3.2.0",
|
916 |
+
"kleur": "^3.0.0",
|
917 |
+
"local-access": "^1.0.1",
|
918 |
+
"sade": "^1.6.0",
|
919 |
+
"semiver": "^1.0.0",
|
920 |
+
"sirv": "^1.0.13",
|
921 |
+
"tinydate": "^1.0.0"
|
922 |
+
}
|
923 |
+
},
|
924 |
+
"sorcery": {
|
925 |
+
"version": "0.10.0",
|
926 |
+
"resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz",
|
927 |
+
"integrity": "sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=",
|
928 |
+
"dev": true,
|
929 |
+
"requires": {
|
930 |
+
"buffer-crc32": "^0.2.5",
|
931 |
+
"minimist": "^1.2.0",
|
932 |
+
"sander": "^0.5.0",
|
933 |
+
"sourcemap-codec": "^1.3.0"
|
934 |
+
}
|
935 |
+
},
|
936 |
+
"source-map": {
|
937 |
+
"version": "0.7.3",
|
938 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
|
939 |
+
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
|
940 |
+
"dev": true
|
941 |
+
},
|
942 |
+
"source-map-support": {
|
943 |
+
"version": "0.5.20",
|
944 |
+
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz",
|
945 |
+
"integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==",
|
946 |
+
"dev": true,
|
947 |
+
"requires": {
|
948 |
+
"buffer-from": "^1.0.0",
|
949 |
+
"source-map": "^0.6.0"
|
950 |
+
},
|
951 |
+
"dependencies": {
|
952 |
+
"source-map": {
|
953 |
+
"version": "0.6.1",
|
954 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
955 |
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
956 |
+
"dev": true
|
957 |
+
}
|
958 |
+
}
|
959 |
+
},
|
960 |
+
"sourcemap-codec": {
|
961 |
+
"version": "1.4.8",
|
962 |
+
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
|
963 |
+
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
|
964 |
+
"dev": true
|
965 |
+
},
|
966 |
+
"strip-indent": {
|
967 |
+
"version": "3.0.0",
|
968 |
+
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
|
969 |
+
"integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
|
970 |
+
"dev": true,
|
971 |
+
"requires": {
|
972 |
+
"min-indent": "^1.0.0"
|
973 |
+
}
|
974 |
+
},
|
975 |
+
"supports-color": {
|
976 |
+
"version": "5.5.0",
|
977 |
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
978 |
+
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
979 |
+
"requires": {
|
980 |
+
"has-flag": "^3.0.0"
|
981 |
+
}
|
982 |
+
},
|
983 |
+
"svelte": {
|
984 |
+
"version": "3.44.1",
|
985 |
+
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.1.tgz",
|
986 |
+
"integrity": "sha512-4DrCEJoBvdR689efHNSxIQn2pnFwB7E7j2yLEJtHE/P8hxwZWIphCtJ8are7bjl/iVMlcEf5uh5pJ68IwR09vQ==",
|
987 |
+
"dev": true
|
988 |
+
},
|
989 |
+
"svelte-check": {
|
990 |
+
"version": "1.6.0",
|
991 |
+
"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-1.6.0.tgz",
|
992 |
+
"integrity": "sha512-nQTlbFJWhwoeLY5rkhgbjzGQSwk5F1pRdEXait0EFaQSrE/iJF+PIjrQlk0BjL/ogk9HaR9ZI0DQSYrl7jl3IQ==",
|
993 |
+
"dev": true,
|
994 |
+
"requires": {
|
995 |
+
"chalk": "^4.0.0",
|
996 |
+
"chokidar": "^3.4.1",
|
997 |
+
"glob": "^7.1.6",
|
998 |
+
"import-fresh": "^3.2.1",
|
999 |
+
"minimist": "^1.2.5",
|
1000 |
+
"sade": "^1.7.4",
|
1001 |
+
"source-map": "^0.7.3",
|
1002 |
+
"svelte-preprocess": "^4.0.0",
|
1003 |
+
"typescript": "*"
|
1004 |
+
},
|
1005 |
+
"dependencies": {
|
1006 |
+
"ansi-styles": {
|
1007 |
+
"version": "4.3.0",
|
1008 |
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
1009 |
+
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
1010 |
+
"dev": true,
|
1011 |
+
"requires": {
|
1012 |
+
"color-convert": "^2.0.1"
|
1013 |
+
}
|
1014 |
+
},
|
1015 |
+
"chalk": {
|
1016 |
+
"version": "4.1.2",
|
1017 |
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
1018 |
+
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
1019 |
+
"dev": true,
|
1020 |
+
"requires": {
|
1021 |
+
"ansi-styles": "^4.1.0",
|
1022 |
+
"supports-color": "^7.1.0"
|
1023 |
+
}
|
1024 |
+
},
|
1025 |
+
"color-convert": {
|
1026 |
+
"version": "2.0.1",
|
1027 |
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
1028 |
+
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
1029 |
+
"dev": true,
|
1030 |
+
"requires": {
|
1031 |
+
"color-name": "~1.1.4"
|
1032 |
+
}
|
1033 |
+
},
|
1034 |
+
"color-name": {
|
1035 |
+
"version": "1.1.4",
|
1036 |
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
1037 |
+
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
1038 |
+
"dev": true
|
1039 |
+
},
|
1040 |
+
"has-flag": {
|
1041 |
+
"version": "4.0.0",
|
1042 |
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
1043 |
+
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
1044 |
+
"dev": true
|
1045 |
+
},
|
1046 |
+
"supports-color": {
|
1047 |
+
"version": "7.2.0",
|
1048 |
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
1049 |
+
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
1050 |
+
"dev": true,
|
1051 |
+
"requires": {
|
1052 |
+
"has-flag": "^4.0.0"
|
1053 |
+
}
|
1054 |
+
}
|
1055 |
+
}
|
1056 |
+
},
|
1057 |
+
"svelte-preprocess": {
|
1058 |
+
"version": "4.9.8",
|
1059 |
+
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.9.8.tgz",
|
1060 |
+
"integrity": "sha512-EQS/oRZzMtYdAprppZxY3HcysKh11w54MgA63ybtL+TAZ4hVqYOnhw41JVJjWN9dhPnNjjLzvbZ2tMhTsla1Og==",
|
1061 |
+
"dev": true,
|
1062 |
+
"requires": {
|
1063 |
+
"@types/pug": "^2.0.4",
|
1064 |
+
"@types/sass": "^1.16.0",
|
1065 |
+
"detect-indent": "^6.0.0",
|
1066 |
+
"magic-string": "^0.25.7",
|
1067 |
+
"sorcery": "^0.10.0",
|
1068 |
+
"strip-indent": "^3.0.0"
|
1069 |
+
}
|
1070 |
+
},
|
1071 |
+
"table-layout": {
|
1072 |
+
"version": "0.4.5",
|
1073 |
+
"resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz",
|
1074 |
+
"integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==",
|
1075 |
+
"requires": {
|
1076 |
+
"array-back": "^2.0.0",
|
1077 |
+
"deep-extend": "~0.6.0",
|
1078 |
+
"lodash.padend": "^4.6.1",
|
1079 |
+
"typical": "^2.6.1",
|
1080 |
+
"wordwrapjs": "^3.0.0"
|
1081 |
+
}
|
1082 |
+
},
|
1083 |
+
"terser": {
|
1084 |
+
"version": "4.8.0",
|
1085 |
+
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
|
1086 |
+
"integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
|
1087 |
+
"dev": true,
|
1088 |
+
"requires": {
|
1089 |
+
"commander": "^2.20.0",
|
1090 |
+
"source-map": "~0.6.1",
|
1091 |
+
"source-map-support": "~0.5.12"
|
1092 |
+
},
|
1093 |
+
"dependencies": {
|
1094 |
+
"source-map": {
|
1095 |
+
"version": "0.6.1",
|
1096 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
1097 |
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
1098 |
+
"dev": true
|
1099 |
+
}
|
1100 |
+
}
|
1101 |
+
},
|
1102 |
+
"test-value": {
|
1103 |
+
"version": "3.0.0",
|
1104 |
+
"resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz",
|
1105 |
+
"integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==",
|
1106 |
+
"requires": {
|
1107 |
+
"array-back": "^2.0.0",
|
1108 |
+
"typical": "^2.6.1"
|
1109 |
+
}
|
1110 |
+
},
|
1111 |
+
"text-encoding-utf-8": {
|
1112 |
+
"version": "1.0.2",
|
1113 |
+
"resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz",
|
1114 |
+
"integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg=="
|
1115 |
+
},
|
1116 |
+
"tinydate": {
|
1117 |
+
"version": "1.3.0",
|
1118 |
+
"resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz",
|
1119 |
+
"integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w=="
|
1120 |
+
},
|
1121 |
+
"to-regex-range": {
|
1122 |
+
"version": "5.0.1",
|
1123 |
+
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
1124 |
+
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
1125 |
+
"dev": true,
|
1126 |
+
"requires": {
|
1127 |
+
"is-number": "^7.0.0"
|
1128 |
+
}
|
1129 |
+
},
|
1130 |
+
"totalist": {
|
1131 |
+
"version": "1.1.0",
|
1132 |
+
"resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz",
|
1133 |
+
"integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g=="
|
1134 |
+
},
|
1135 |
+
"tslib": {
|
1136 |
+
"version": "2.3.1",
|
1137 |
+
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
1138 |
+
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
|
1139 |
+
"dev": true
|
1140 |
+
},
|
1141 |
+
"typescript": {
|
1142 |
+
"version": "3.9.10",
|
1143 |
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
|
1144 |
+
"integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==",
|
1145 |
+
"dev": true
|
1146 |
+
},
|
1147 |
+
"typical": {
|
1148 |
+
"version": "2.6.1",
|
1149 |
+
"resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
|
1150 |
+
"integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0="
|
1151 |
+
},
|
1152 |
+
"wordwrapjs": {
|
1153 |
+
"version": "3.0.0",
|
1154 |
+
"resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
|
1155 |
+
"integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
|
1156 |
+
"requires": {
|
1157 |
+
"reduce-flatten": "^1.0.1",
|
1158 |
+
"typical": "^2.6.1"
|
1159 |
+
}
|
1160 |
+
},
|
1161 |
+
"wrappy": {
|
1162 |
+
"version": "1.0.2",
|
1163 |
+
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
1164 |
+
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
1165 |
+
"dev": true
|
1166 |
+
},
|
1167 |
+
"ws": {
|
1168 |
+
"version": "7.5.5",
|
1169 |
+
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
|
1170 |
+
"integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
|
1171 |
+
"dev": true
|
1172 |
+
}
|
1173 |
+
}
|
1174 |
+
}
|
frontend/package.json
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "streamlit_component_svelte_template",
|
3 |
+
"version": "2.0.0",
|
4 |
+
"scripts": {
|
5 |
+
"build": "rollup -c",
|
6 |
+
"dev": "rollup -c -w",
|
7 |
+
"start": "sirv public",
|
8 |
+
"validate": "svelte-check"
|
9 |
+
},
|
10 |
+
"devDependencies": {
|
11 |
+
"@rollup/plugin-commonjs": "^12.0.0",
|
12 |
+
"@rollup/plugin-node-resolve": "^8.0.0",
|
13 |
+
"@rollup/plugin-typescript": "^4.0.0",
|
14 |
+
"@tsconfig/svelte": "^1.0.0",
|
15 |
+
"rollup": "^2.3.4",
|
16 |
+
"rollup-plugin-livereload": "^1.0.0",
|
17 |
+
"rollup-plugin-svelte": "^6.1.1",
|
18 |
+
"rollup-plugin-terser": "^5.1.2",
|
19 |
+
"svelte": "^3.0.0",
|
20 |
+
"svelte-check": "^1.0.0",
|
21 |
+
"svelte-preprocess": "^4.0.0",
|
22 |
+
"tslib": "^2.0.0",
|
23 |
+
"typescript": "^3.9.3"
|
24 |
+
},
|
25 |
+
"dependencies": {
|
26 |
+
"apache-arrow": "^0.17.0",
|
27 |
+
"event-target-shim": "^5.0.1",
|
28 |
+
"sirv-cli": "^1.0.0"
|
29 |
+
}
|
30 |
+
}
|
frontend/public/bootstrap.min.css
ADDED
The diff for this file is too large to render.
See raw diff
|
|
frontend/public/bootstrap.min.css.map
ADDED
The diff for this file is too large to render.
See raw diff
|
|
frontend/public/build/bundle.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
frontend/public/build/bundle.js.map
ADDED
The diff for this file is too large to render.
See raw diff
|
|
frontend/public/index.html
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<title>Streamlit Component</title>
|
5 |
+
<meta charset="UTF-8" />
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
7 |
+
<meta name="theme-color" content="#000000" />
|
8 |
+
<meta name="description" content="Streamlit Component" />
|
9 |
+
<link rel="stylesheet" href="./bootstrap.min.css" />
|
10 |
+
<link rel="stylesheet" href="./build/bundle.css" />
|
11 |
+
<script defer src="./build/bundle.js"></script>
|
12 |
+
</head>
|
13 |
+
<body>
|
14 |
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
15 |
+
</body>
|
16 |
+
</html>
|
frontend/rollup.config.js
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import svelte from 'rollup-plugin-svelte';
|
2 |
+
import resolve from '@rollup/plugin-node-resolve';
|
3 |
+
import commonjs from '@rollup/plugin-commonjs';
|
4 |
+
import livereload from 'rollup-plugin-livereload';
|
5 |
+
import { terser } from 'rollup-plugin-terser';
|
6 |
+
import sveltePreprocess from 'svelte-preprocess';
|
7 |
+
import typescript from '@rollup/plugin-typescript';
|
8 |
+
|
9 |
+
const production = !process.env.ROLLUP_WATCH;
|
10 |
+
|
11 |
+
function serve() {
|
12 |
+
let server;
|
13 |
+
|
14 |
+
function toExit() {
|
15 |
+
if (server) server.kill(0);
|
16 |
+
}
|
17 |
+
|
18 |
+
return {
|
19 |
+
writeBundle() {
|
20 |
+
if (server) return;
|
21 |
+
server = require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], {
|
22 |
+
stdio: ['ignore', 'inherit', 'inherit'],
|
23 |
+
shell: true
|
24 |
+
});
|
25 |
+
|
26 |
+
process.on('SIGTERM', toExit);
|
27 |
+
process.on('exit', toExit);
|
28 |
+
}
|
29 |
+
};
|
30 |
+
}
|
31 |
+
|
32 |
+
export default {
|
33 |
+
input: 'src/main.ts',
|
34 |
+
output: {
|
35 |
+
sourcemap: true,
|
36 |
+
format: 'iife',
|
37 |
+
name: 'app',
|
38 |
+
file: 'public/build/bundle.js'
|
39 |
+
},
|
40 |
+
plugins: [
|
41 |
+
svelte({
|
42 |
+
// enable run-time checks when not in production
|
43 |
+
dev: !production,
|
44 |
+
// we'll extract any component CSS out into
|
45 |
+
// a separate file - better for performance
|
46 |
+
// css: css => {
|
47 |
+
// css.write('public/build/bundle.css');
|
48 |
+
// },
|
49 |
+
preprocess: sveltePreprocess(),
|
50 |
+
}),
|
51 |
+
|
52 |
+
// If you have external dependencies installed from
|
53 |
+
// npm, you'll most likely need these plugins. In
|
54 |
+
// some cases you'll need additional configuration -
|
55 |
+
// consult the documentation for details:
|
56 |
+
// https://github.com/rollup/plugins/tree/master/packages/commonjs
|
57 |
+
resolve({
|
58 |
+
browser: true,
|
59 |
+
dedupe: ['svelte']
|
60 |
+
}),
|
61 |
+
commonjs(),
|
62 |
+
typescript({ sourceMap: !production }),
|
63 |
+
|
64 |
+
// In dev mode, call `npm run start` once
|
65 |
+
// the bundle has been generated
|
66 |
+
!production && serve(),
|
67 |
+
|
68 |
+
// Watch the `public` directory and refresh the
|
69 |
+
// browser on changes when not in production
|
70 |
+
!production && livereload('public'),
|
71 |
+
|
72 |
+
// If we're building for production (npm run build
|
73 |
+
// instead of npm run dev), minify
|
74 |
+
production && terser()
|
75 |
+
],
|
76 |
+
watch: {
|
77 |
+
clearScreen: false
|
78 |
+
}
|
79 |
+
};
|
frontend/src/ImageGallery.svelte
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script lang="ts">
|
2 |
+
import { Streamlit, setStreamlitLifecycle } from "./streamlit";
|
3 |
+
setStreamlitLifecycle();
|
4 |
+
|
5 |
+
export let imageUrls: Array<string>;
|
6 |
+
export let height: number;
|
7 |
+
|
8 |
+
let selectedImageUrl: string;
|
9 |
+
|
10 |
+
function image_onclick(event: any) {
|
11 |
+
selectedImageUrl = event.srcElement.currentSrc;
|
12 |
+
Streamlit.setComponentValue(selectedImageUrl);
|
13 |
+
}
|
14 |
+
</script>
|
15 |
+
|
16 |
+
|
17 |
+
<div class="scroller">
|
18 |
+
{#each imageUrls as imageUrl}
|
19 |
+
<img src={imageUrl} id={imageUrl} alt="" style="height: {height}px;" on:click={image_onclick}>
|
20 |
+
{/each}
|
21 |
+
</div>
|
22 |
+
|
23 |
+
|
24 |
+
<style>
|
25 |
+
.scroller {
|
26 |
+
min-height: 100px;
|
27 |
+
overflow-x: scroll;
|
28 |
+
overflow-y: hidden;
|
29 |
+
white-space: nowrap;
|
30 |
+
}
|
31 |
+
img {
|
32 |
+
display: inline-block;
|
33 |
+
padding: 1%;
|
34 |
+
border-radius: 20px;
|
35 |
+
opacity: 0.9;
|
36 |
+
transition: all .2s;
|
37 |
+
}
|
38 |
+
|
39 |
+
img:hover {
|
40 |
+
opacity: 1;
|
41 |
+
transform: scale(1.05);
|
42 |
+
cursor: pointer;
|
43 |
+
}
|
44 |
+
</style>
|
45 |
+
|
46 |
+
|
47 |
+
|
48 |
+
|
49 |
+
|
50 |
+
|
frontend/src/main.ts
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { WithStreamlitConnection } from "./streamlit";
|
2 |
+
import ImageGallery from "./ImageGallery.svelte";
|
3 |
+
|
4 |
+
// "WithStreamlitConnection" is a wrapper component. It bootstraps the
|
5 |
+
// connection between your component and the Streamlit app, and handles
|
6 |
+
// passing arguments from Python -> Component.
|
7 |
+
//
|
8 |
+
// You don't need to edit withStreamlitConnection (but you're welcome to!).
|
9 |
+
const imageGallery = new WithStreamlitConnection({
|
10 |
+
target: document.body,
|
11 |
+
props: {
|
12 |
+
/**
|
13 |
+
* Custom Streamlit component
|
14 |
+
*/
|
15 |
+
component: ImageGallery,
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Set to false if you want `args` (the named dictionary of arguments passed
|
19 |
+
* from Python) to be passed as a dictionary to your component.
|
20 |
+
*
|
21 |
+
* Default is `true`.
|
22 |
+
*/
|
23 |
+
spreadArgs: true,
|
24 |
+
},
|
25 |
+
});
|
26 |
+
|
27 |
+
export default ImageGallery;
|
frontend/src/streamlit/ArrowTable.ts
ADDED
@@ -0,0 +1,224 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* @license
|
3 |
+
* Copyright 2018-2019 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 |
+
|
18 |
+
import { Table, Type } from "apache-arrow"
|
19 |
+
|
20 |
+
type CellType = "blank" | "index" | "columns" | "data"
|
21 |
+
|
22 |
+
export interface ArrowDataframeProto {
|
23 |
+
data: ArrowTableProto
|
24 |
+
height: string
|
25 |
+
width: string
|
26 |
+
}
|
27 |
+
|
28 |
+
export interface ArrowTableProto {
|
29 |
+
data: Uint8Array
|
30 |
+
index: Uint8Array
|
31 |
+
columns: Uint8Array
|
32 |
+
styler: Styler
|
33 |
+
}
|
34 |
+
|
35 |
+
interface Cell {
|
36 |
+
classNames: string
|
37 |
+
content: string
|
38 |
+
id?: string
|
39 |
+
type: CellType
|
40 |
+
}
|
41 |
+
|
42 |
+
interface Styler {
|
43 |
+
caption?: string
|
44 |
+
displayValuesTable: Table
|
45 |
+
styles?: string
|
46 |
+
uuid: string
|
47 |
+
}
|
48 |
+
|
49 |
+
export class ArrowTable {
|
50 |
+
private readonly dataTable: Table
|
51 |
+
private readonly indexTable: Table
|
52 |
+
private readonly columnsTable: Table
|
53 |
+
private readonly styler?: Styler
|
54 |
+
|
55 |
+
constructor(
|
56 |
+
dataBuffer: Uint8Array,
|
57 |
+
indexBuffer: Uint8Array,
|
58 |
+
columnsBuffer: Uint8Array,
|
59 |
+
styler?: any
|
60 |
+
) {
|
61 |
+
this.dataTable = Table.from(dataBuffer)
|
62 |
+
this.indexTable = Table.from(indexBuffer)
|
63 |
+
this.columnsTable = Table.from(columnsBuffer)
|
64 |
+
this.styler = styler
|
65 |
+
? {
|
66 |
+
caption: styler.get("caption"),
|
67 |
+
displayValuesTable: Table.from(styler.get("displayValues")),
|
68 |
+
styles: styler.get("styles"),
|
69 |
+
uuid: styler.get("uuid"),
|
70 |
+
}
|
71 |
+
: undefined
|
72 |
+
}
|
73 |
+
|
74 |
+
get rows(): number {
|
75 |
+
return this.indexTable.length + this.columnsTable.numCols
|
76 |
+
}
|
77 |
+
|
78 |
+
get columns(): number {
|
79 |
+
return this.indexTable.numCols + this.columnsTable.length
|
80 |
+
}
|
81 |
+
|
82 |
+
get headerRows(): number {
|
83 |
+
return this.rows - this.dataRows
|
84 |
+
}
|
85 |
+
|
86 |
+
get headerColumns(): number {
|
87 |
+
return this.columns - this.dataColumns
|
88 |
+
}
|
89 |
+
|
90 |
+
get dataRows(): number {
|
91 |
+
return this.dataTable.length
|
92 |
+
}
|
93 |
+
|
94 |
+
get dataColumns(): number {
|
95 |
+
return this.dataTable.numCols
|
96 |
+
}
|
97 |
+
|
98 |
+
get uuid(): string | undefined {
|
99 |
+
return this.styler && this.styler.uuid
|
100 |
+
}
|
101 |
+
|
102 |
+
get caption(): string | undefined {
|
103 |
+
return this.styler && this.styler.caption
|
104 |
+
}
|
105 |
+
|
106 |
+
get styles(): string | undefined {
|
107 |
+
return this.styler && this.styler.styles
|
108 |
+
}
|
109 |
+
|
110 |
+
get table(): Table {
|
111 |
+
return this.dataTable
|
112 |
+
}
|
113 |
+
|
114 |
+
get index(): Table {
|
115 |
+
return this.indexTable
|
116 |
+
}
|
117 |
+
|
118 |
+
get columnTable(): Table {
|
119 |
+
return this.columnsTable
|
120 |
+
}
|
121 |
+
|
122 |
+
public getCell = (rowIndex: number, columnIndex: number): Cell => {
|
123 |
+
const isBlankCell =
|
124 |
+
rowIndex < this.headerRows && columnIndex < this.headerColumns
|
125 |
+
const isIndexCell =
|
126 |
+
rowIndex >= this.headerRows && columnIndex < this.headerColumns
|
127 |
+
const isColumnsCell =
|
128 |
+
rowIndex < this.headerRows && columnIndex >= this.headerColumns
|
129 |
+
|
130 |
+
if (isBlankCell) {
|
131 |
+
const classNames = ["blank"]
|
132 |
+
if (columnIndex > 0) {
|
133 |
+
classNames.push("level" + rowIndex)
|
134 |
+
}
|
135 |
+
|
136 |
+
return {
|
137 |
+
type: "blank",
|
138 |
+
classNames: classNames.join(" "),
|
139 |
+
content: "",
|
140 |
+
}
|
141 |
+
} else if (isColumnsCell) {
|
142 |
+
const dataColumnIndex = columnIndex - this.headerColumns
|
143 |
+
const classNames = [
|
144 |
+
"col_heading",
|
145 |
+
"level" + rowIndex,
|
146 |
+
"col" + dataColumnIndex,
|
147 |
+
]
|
148 |
+
|
149 |
+
return {
|
150 |
+
type: "columns",
|
151 |
+
classNames: classNames.join(" "),
|
152 |
+
content: this.getContent(this.columnsTable, dataColumnIndex, rowIndex),
|
153 |
+
}
|
154 |
+
} else if (isIndexCell) {
|
155 |
+
const dataRowIndex = rowIndex - this.headerRows
|
156 |
+
const classNames = [
|
157 |
+
"row_heading",
|
158 |
+
"level" + columnIndex,
|
159 |
+
"row" + dataRowIndex,
|
160 |
+
]
|
161 |
+
|
162 |
+
return {
|
163 |
+
type: "index",
|
164 |
+
id: `T_${this.uuid}level${columnIndex}_row${dataRowIndex}`,
|
165 |
+
classNames: classNames.join(" "),
|
166 |
+
content: this.getContent(this.indexTable, dataRowIndex, columnIndex),
|
167 |
+
}
|
168 |
+
} else {
|
169 |
+
const dataRowIndex = rowIndex - this.headerRows
|
170 |
+
const dataColumnIndex = columnIndex - this.headerColumns
|
171 |
+
const classNames = [
|
172 |
+
"data",
|
173 |
+
"row" + dataRowIndex,
|
174 |
+
"col" + dataColumnIndex,
|
175 |
+
]
|
176 |
+
const content = this.styler
|
177 |
+
? this.getContent(
|
178 |
+
this.styler.displayValuesTable,
|
179 |
+
dataRowIndex,
|
180 |
+
dataColumnIndex
|
181 |
+
)
|
182 |
+
: this.getContent(this.dataTable, dataRowIndex, dataColumnIndex)
|
183 |
+
|
184 |
+
return {
|
185 |
+
type: "data",
|
186 |
+
id: `T_${this.uuid}row${dataRowIndex}_col${dataColumnIndex}`,
|
187 |
+
classNames: classNames.join(" "),
|
188 |
+
content,
|
189 |
+
}
|
190 |
+
}
|
191 |
+
}
|
192 |
+
|
193 |
+
public getContent = (
|
194 |
+
table: Table,
|
195 |
+
rowIndex: number,
|
196 |
+
columnIndex: number
|
197 |
+
): any => {
|
198 |
+
const column = table.getColumnAt(columnIndex)
|
199 |
+
if (column === null) {
|
200 |
+
return ""
|
201 |
+
}
|
202 |
+
|
203 |
+
const columnTypeId = this.getColumnTypeId(table, columnIndex)
|
204 |
+
switch (columnTypeId) {
|
205 |
+
case Type.Timestamp: {
|
206 |
+
return this.nanosToDate(column.get(rowIndex))
|
207 |
+
}
|
208 |
+
default: {
|
209 |
+
return column.get(rowIndex)
|
210 |
+
}
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Returns apache-arrow specific typeId of column.
|
216 |
+
*/
|
217 |
+
private getColumnTypeId(table: Table, columnIndex: number): Type {
|
218 |
+
return table.schema.fields[columnIndex].type.typeId
|
219 |
+
}
|
220 |
+
|
221 |
+
private nanosToDate(nanos: number): Date {
|
222 |
+
return new Date(nanos / 1e6)
|
223 |
+
}
|
224 |
+
}
|
frontend/src/streamlit/WithStreamlitConnection.svelte
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script lang="ts">
|
2 |
+
import { onMount, afterUpdate, onDestroy } from "svelte";
|
3 |
+
import { Streamlit } from "./streamlit";
|
4 |
+
import type { RenderData } from "./streamlit";
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Custom Streamlit component
|
8 |
+
*/
|
9 |
+
export let component: any;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Set to false if you want `args` (the named dictionary of arguments passed
|
13 |
+
* from Python) to be passed as a dictionary to your component.
|
14 |
+
*
|
15 |
+
* Default is `true`.
|
16 |
+
*/
|
17 |
+
export let spreadArgs: boolean = true;
|
18 |
+
|
19 |
+
// State
|
20 |
+
let renderData: RenderData;
|
21 |
+
|
22 |
+
// Props passed to custom Streamlit components.
|
23 |
+
/** Named dictionary of arguments passed from Python.
|
24 |
+
* Arguments will be passed directly if `spreadArgs=true`
|
25 |
+
*/
|
26 |
+
let args: any;
|
27 |
+
|
28 |
+
/** The component's width. */
|
29 |
+
let width: number;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* True if the component should be disabled.
|
33 |
+
* All components get disabled while the app is being re-run,
|
34 |
+
* and become re-enabled when the re-run has finished.
|
35 |
+
*/
|
36 |
+
let disabled: boolean;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Streamlit is telling this component to redraw.
|
40 |
+
* We save the render data in State, so that it can be passed to the
|
41 |
+
* component.
|
42 |
+
*/
|
43 |
+
const onRenderEvent = (event: Event): void => {
|
44 |
+
// Update our state with the newest render data
|
45 |
+
renderData = (event as CustomEvent<RenderData>).detail;
|
46 |
+
args = renderData.args;
|
47 |
+
disabled = renderData.disabled;
|
48 |
+
};
|
49 |
+
|
50 |
+
onMount((): void => {
|
51 |
+
// Set up event listeners, and signal to Streamlit that we're ready.
|
52 |
+
// We won't render the component until we receive the first RENDER_EVENT.
|
53 |
+
Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, onRenderEvent);
|
54 |
+
Streamlit.setComponentReady();
|
55 |
+
});
|
56 |
+
|
57 |
+
onDestroy((): void => {
|
58 |
+
// Remove our `onRender` handler to Streamlit's render event.
|
59 |
+
Streamlit.events.removeEventListener(Streamlit.RENDER_EVENT, onRenderEvent);
|
60 |
+
});
|
61 |
+
</script>
|
62 |
+
|
63 |
+
<svelte:window bind:innerWidth={width} />
|
64 |
+
<!-- Don't render until we've gotten our first RENDER_EVENT from Streamlit. -->
|
65 |
+
{#if renderData}
|
66 |
+
{#if spreadArgs}
|
67 |
+
<svelte:component this={component} {...args} {disabled} {width} />
|
68 |
+
{:else}
|
69 |
+
<svelte:component this={component} {args} {disabled} {width} />
|
70 |
+
{/if}
|
71 |
+
{/if}
|
frontend/src/streamlit/index.ts
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import type { RenderData as RenderData_ } from "./streamlit";
|
2 |
+
import WithStreamlitConnection from "./WithStreamlitConnection.svelte";
|
3 |
+
|
4 |
+
export { ArrowTable } from "./ArrowTable";
|
5 |
+
export { Streamlit } from "./streamlit";
|
6 |
+
|
7 |
+
export { setStreamlitLifecycle } from "./setStreamlitLifecycle";
|
8 |
+
export { WithStreamlitConnection };
|
9 |
+
|
10 |
+
export type RenderData = RenderData_;
|
frontend/src/streamlit/setStreamlitLifecycle.ts
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { onMount, afterUpdate } from "svelte";
|
2 |
+
import { Streamlit } from "./streamlit";
|
3 |
+
|
4 |
+
/**
|
5 |
+
* [Optional] Set Streamlit Svelte Lifecycle functions
|
6 |
+
*
|
7 |
+
* You are not required call this function on your Streamlit
|
8 |
+
* component. If you decide not to call it, you should implement the
|
9 |
+
* `onMount` and `afterUpdate` functions in your own component,
|
10 |
+
* so that your plugin properly resizes.
|
11 |
+
*/
|
12 |
+
export const setStreamlitLifecycle = (): void => {
|
13 |
+
onMount((): void => {
|
14 |
+
// Finally, tell Streamlit to update our initial height. We omit the
|
15 |
+
// `height` parameter here to have it default to our scrollHeight.
|
16 |
+
Streamlit.setFrameHeight();
|
17 |
+
});
|
18 |
+
|
19 |
+
afterUpdate((): void => {
|
20 |
+
// We tell Streamlit to update our frameHeight after each update, in
|
21 |
+
// case it has changed. (This isn't strictly necessary for the example
|
22 |
+
// because our height stays fixed, but this is a low-cost function, so
|
23 |
+
// there's no harm in doing it redundantly.)
|
24 |
+
Streamlit.setFrameHeight();
|
25 |
+
});
|
26 |
+
};
|
frontend/src/streamlit/streamlit.ts
ADDED
@@ -0,0 +1,198 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
|
18 |
+
// Safari doesn't support the EventTarget class, so we use a shim.
|
19 |
+
import { EventTarget } from "event-target-shim"
|
20 |
+
import { ArrowDataframeProto, ArrowTable } from "./ArrowTable"
|
21 |
+
|
22 |
+
/** Data sent in the custom Streamlit render event. */
|
23 |
+
export interface RenderData {
|
24 |
+
args: any
|
25 |
+
disabled: boolean
|
26 |
+
}
|
27 |
+
|
28 |
+
/** Messages from Component -> Streamlit */
|
29 |
+
enum ComponentMessageType {
|
30 |
+
// A component sends this message when it's ready to receive messages
|
31 |
+
// from Streamlit. Streamlit won't send any messages until it gets this.
|
32 |
+
// Data: { apiVersion: number }
|
33 |
+
COMPONENT_READY = "streamlit:componentReady",
|
34 |
+
|
35 |
+
// The component has a new widget value. Send it back to Streamlit, which
|
36 |
+
// will then re-run the app.
|
37 |
+
// Data: { value: any }
|
38 |
+
SET_COMPONENT_VALUE = "streamlit:setComponentValue",
|
39 |
+
|
40 |
+
// The component has a new height for its iframe.
|
41 |
+
// Data: { height: number }
|
42 |
+
SET_FRAME_HEIGHT = "streamlit:setFrameHeight",
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Streamlit communication API.
|
47 |
+
*
|
48 |
+
* Components can send data to Streamlit via the functions defined here,
|
49 |
+
* and receive data from Streamlit via the `events` property.
|
50 |
+
*/
|
51 |
+
export class Streamlit {
|
52 |
+
/**
|
53 |
+
* The Streamlit component API version we're targetting.
|
54 |
+
* There's currently only 1!
|
55 |
+
*/
|
56 |
+
public static readonly API_VERSION = 1
|
57 |
+
|
58 |
+
public static readonly RENDER_EVENT = "streamlit:render"
|
59 |
+
|
60 |
+
/** Dispatches events received from Streamlit. */
|
61 |
+
public static readonly events = new EventTarget()
|
62 |
+
|
63 |
+
private static registeredMessageListener = false
|
64 |
+
private static lastFrameHeight?: number
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Tell Streamlit that the component is ready to start receiving data.
|
68 |
+
* Streamlit will defer emitting RENDER events until it receives the
|
69 |
+
* COMPONENT_READY message.
|
70 |
+
*/
|
71 |
+
public static setComponentReady = (): void => {
|
72 |
+
if (!Streamlit.registeredMessageListener) {
|
73 |
+
// Register for message events if we haven't already
|
74 |
+
window.addEventListener("message", Streamlit.onMessageEvent)
|
75 |
+
Streamlit.registeredMessageListener = true
|
76 |
+
}
|
77 |
+
|
78 |
+
Streamlit.sendBackMsg(ComponentMessageType.COMPONENT_READY, {
|
79 |
+
apiVersion: Streamlit.API_VERSION,
|
80 |
+
})
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Report the component's height to Streamlit.
|
85 |
+
* This should be called every time the component changes its DOM - that is,
|
86 |
+
* when it's first loaded, and any time it updates.
|
87 |
+
*/
|
88 |
+
public static setFrameHeight = (height?: number): void => {
|
89 |
+
if (height === undefined) {
|
90 |
+
// `height` is optional. If undefined, it defaults to scrollHeight,
|
91 |
+
// which is the entire height of the element minus its border,
|
92 |
+
// scrollbar, and margin.
|
93 |
+
height = document.body.scrollHeight
|
94 |
+
}
|
95 |
+
|
96 |
+
if (height === Streamlit.lastFrameHeight) {
|
97 |
+
// Don't bother updating if our height hasn't changed.
|
98 |
+
return
|
99 |
+
}
|
100 |
+
|
101 |
+
Streamlit.lastFrameHeight = height
|
102 |
+
Streamlit.sendBackMsg(ComponentMessageType.SET_FRAME_HEIGHT, { height })
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Set the component's value. This value will be returned to the Python
|
107 |
+
* script, and the script will be re-run.
|
108 |
+
*
|
109 |
+
* For example:
|
110 |
+
*
|
111 |
+
* JavaScript:
|
112 |
+
* Streamlit.setComponentValue("ahoy!")
|
113 |
+
*
|
114 |
+
* Python:
|
115 |
+
* value = st.my_component(...)
|
116 |
+
* st.write(value) # -> "ahoy!"
|
117 |
+
*
|
118 |
+
* The value must be serializable into JSON.
|
119 |
+
*/
|
120 |
+
public static setComponentValue = (value: any): void => {
|
121 |
+
Streamlit.sendBackMsg(ComponentMessageType.SET_COMPONENT_VALUE, { value })
|
122 |
+
}
|
123 |
+
|
124 |
+
/** Receive a ForwardMsg from the Streamlit app */
|
125 |
+
private static onMessageEvent = (event: MessageEvent): void => {
|
126 |
+
const type = event.data["type"]
|
127 |
+
switch (type) {
|
128 |
+
case Streamlit.RENDER_EVENT:
|
129 |
+
Streamlit.onRenderMessage(event.data)
|
130 |
+
break
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Handle an untyped Streamlit render event and redispatch it as a
|
136 |
+
* StreamlitRenderEvent.
|
137 |
+
*/
|
138 |
+
private static onRenderMessage = (data: any): void => {
|
139 |
+
let args = data["args"]
|
140 |
+
if (args == null) {
|
141 |
+
console.error(
|
142 |
+
`Got null args in onRenderMessage. This should never happen`
|
143 |
+
)
|
144 |
+
args = {}
|
145 |
+
}
|
146 |
+
|
147 |
+
// Parse our dataframe arguments with arrow, and merge them into our args dict
|
148 |
+
const dataframeArgs =
|
149 |
+
data["dfs"] && data["dfs"].length > 0
|
150 |
+
? Streamlit.argsDataframeToObject(data["dfs"])
|
151 |
+
: {}
|
152 |
+
|
153 |
+
args = {
|
154 |
+
...args,
|
155 |
+
...dataframeArgs,
|
156 |
+
}
|
157 |
+
|
158 |
+
const disabled = Boolean(data["disabled"])
|
159 |
+
|
160 |
+
// Dispatch a render event!
|
161 |
+
const eventData = { disabled, args }
|
162 |
+
const event = new CustomEvent<RenderData>(Streamlit.RENDER_EVENT, {
|
163 |
+
detail: eventData,
|
164 |
+
})
|
165 |
+
Streamlit.events.dispatchEvent(event)
|
166 |
+
}
|
167 |
+
|
168 |
+
private static argsDataframeToObject = (
|
169 |
+
argsDataframe: ArgsDataframe[]
|
170 |
+
): object => {
|
171 |
+
const argsDataframeArrow = argsDataframe.map(
|
172 |
+
({ key, value }: ArgsDataframe) => [key, Streamlit.toArrowTable(value)]
|
173 |
+
)
|
174 |
+
return Object.fromEntries(argsDataframeArrow)
|
175 |
+
}
|
176 |
+
|
177 |
+
private static toArrowTable = (df: ArrowDataframeProto): ArrowTable => {
|
178 |
+
const { data, index, columns } = df.data
|
179 |
+
return new ArrowTable(data, index, columns)
|
180 |
+
}
|
181 |
+
|
182 |
+
/** Post a message to the Streamlit app. */
|
183 |
+
private static sendBackMsg = (type: string, data?: any): void => {
|
184 |
+
window.parent.postMessage(
|
185 |
+
{
|
186 |
+
isStreamlitMessage: true,
|
187 |
+
type: type,
|
188 |
+
...data,
|
189 |
+
},
|
190 |
+
"*"
|
191 |
+
)
|
192 |
+
}
|
193 |
+
}
|
194 |
+
|
195 |
+
interface ArgsDataframe {
|
196 |
+
key: string
|
197 |
+
value: ArrowDataframeProto
|
198 |
+
}
|
frontend/tsconfig.json
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"extends": "@tsconfig/svelte/tsconfig.json",
|
3 |
+
"compilerOptions": {
|
4 |
+
"target": "esnext",
|
5 |
+
"lib": ["dom", "dom.iterable", "esnext"],
|
6 |
+
"allowJs": true,
|
7 |
+
"skipLibCheck": true,
|
8 |
+
"esModuleInterop": true,
|
9 |
+
"allowSyntheticDefaultImports": true,
|
10 |
+
"strict": true,
|
11 |
+
"forceConsistentCasingInFileNames": true,
|
12 |
+
"module": "esnext",
|
13 |
+
"moduleResolution": "node",
|
14 |
+
"resolveJsonModule": true,
|
15 |
+
"isolatedModules": true,
|
16 |
+
"noEmit": true
|
17 |
+
},
|
18 |
+
"include": ["src/**/*"],
|
19 |
+
"exclude": ["node_modules/*", "__sapper__/*", "public/*"]
|
20 |
+
}
|