cleanup terminal

This commit is contained in:
Nikita Galaiko 2023-04-06 11:04:44 +02:00
parent 5fb947421a
commit 9b2ea25a7a
13 changed files with 603 additions and 795 deletions

View File

@ -38,44 +38,34 @@
"@lezer/lr": "^1.3.3", "@lezer/lr": "^1.3.3",
"@replit/codemirror-lang-svelte": "^6.0.0", "@replit/codemirror-lang-svelte": "^6.0.0",
"@square/svelte-store": "^1.0.14", "@square/svelte-store": "^1.0.14",
"@tauri-apps/api": "^1.2.0",
"date-fns": "^2.29.3",
"diff-match-patch": "^1.0.5",
"inter-ui": "^3.19.3",
"nanoid": "^4.0.1",
"posthog-js": "^1.46.1",
"svelte-french-toast": "^1.0.3",
"svelte-resize-observer": "^2.0.0",
"tauri-plugin-log-api": "github:tauri-apps/tauri-plugin-log",
"tinykeys": "^1.4.0",
"xterm": "^5.1.0",
"xterm-addon-canvas": "^0.3.0",
"xterm-addon-fit": "^0.7.0",
"xterm-addon-ligatures": "^0.6.0",
"xterm-addon-unicode11": "^0.5.0",
"xterm-addon-webgl": "^0.14.0",
"@storybook/addon-essentials": "next", "@storybook/addon-essentials": "next",
"@storybook/addon-interactions": "next", "@storybook/addon-interactions": "next",
"@storybook/addon-links": "next", "@storybook/addon-links": "next",
"@storybook/addon-svelte-csf": "next", "@storybook/addon-svelte-csf": "next",
"@storybook/blocks": "next", "@storybook/blocks": "next",
"@storybook/theming": "next",
"@storybook/sveltekit": "next",
"@storybook/svelte": "next", "@storybook/svelte": "next",
"@storybook/sveltekit": "next",
"@storybook/testing-library": "next", "@storybook/testing-library": "next",
"@storybook/theming": "next",
"@sveltejs/adapter-static": "^2.0.0", "@sveltejs/adapter-static": "^2.0.0",
"@sveltejs/kit": "^1.15.0", "@sveltejs/kit": "^1.15.0",
"@tauri-apps/api": "^1.2.0",
"@tauri-apps/cli": "^1.2.2", "@tauri-apps/cli": "^1.2.2",
"@types/diff": "^5.0.2", "@types/diff": "^5.0.2",
"@types/diff-match-patch": "^1.0.32", "@types/diff-match-patch": "^1.0.32",
"@typescript-eslint/eslint-plugin": "^5.45.0", "@typescript-eslint/eslint-plugin": "^5.45.0",
"@typescript-eslint/parser": "^5.45.0", "@typescript-eslint/parser": "^5.45.0",
"autoprefixer": "^10.4.7", "autoprefixer": "^10.4.7",
"date-fns": "^2.29.3",
"diff-match-patch": "^1.0.5",
"eslint": "^8.28.0", "eslint": "^8.28.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-svelte3": "^4.0.0", "eslint-plugin-svelte3": "^4.0.0",
"inter-ui": "^3.19.3",
"nanoid": "^4.0.1",
"postcss": "^8.4.14", "postcss": "^8.4.14",
"postcss-load-config": "^4.0.1", "postcss-load-config": "^4.0.1",
"posthog-js": "^1.46.1",
"prettier": "^2.8.0", "prettier": "^2.8.0",
"prettier-plugin-svelte": "^2.8.1", "prettier-plugin-svelte": "^2.8.1",
"prettier-plugin-tailwindcss": "^0.2.4", "prettier-plugin-tailwindcss": "^0.2.4",
@ -85,9 +75,20 @@
"svelte": "^3.55.1", "svelte": "^3.55.1",
"svelte-check": "^3.0.1", "svelte-check": "^3.0.1",
"svelte-floating-ui": "^1.5.2", "svelte-floating-ui": "^1.5.2",
"svelte-french-toast": "^1.0.3",
"svelte-resize-observer": "^2.0.0",
"tailwindcss": "^3.1.5", "tailwindcss": "^3.1.5",
"tauri-plugin-log-api": "github:tauri-apps/tauri-plugin-log",
"tauri-plugin-websocket-api": "github:tauri-apps/tauri-plugin-websocket",
"tinykeys": "^1.4.0",
"tslib": "^2.4.1", "tslib": "^2.4.1",
"typescript": "^4.8.4", "typescript": "^4.8.4",
"vite": "^4.0.0" "vite": "^4.0.0",
"xterm": "^5.1.0",
"xterm-addon-canvas": "^0.3.0",
"xterm-addon-fit": "^0.7.0",
"xterm-addon-ligatures": "^0.6.0",
"xterm-addon-unicode11": "^0.5.0",
"xterm-addon-webgl": "^0.14.0"
} }
} }

View File

@ -65,6 +65,7 @@ specifiers:
svelte-resize-observer: ^2.0.0 svelte-resize-observer: ^2.0.0
tailwindcss: ^3.1.5 tailwindcss: ^3.1.5
tauri-plugin-log-api: github:tauri-apps/tauri-plugin-log tauri-plugin-log-api: github:tauri-apps/tauri-plugin-log
tauri-plugin-websocket-api: github:tauri-apps/tauri-plugin-websocket
tinykeys: ^1.4.0 tinykeys: ^1.4.0
tslib: ^2.4.1 tslib: ^2.4.1
typescript: ^4.8.4 typescript: ^4.8.4
@ -100,15 +101,15 @@ devDependencies:
'@lezer/lr': 1.3.3 '@lezer/lr': 1.3.3
'@replit/codemirror-lang-svelte': 6.0.0_ybny7xhlf2ysg4majw54z4nkly '@replit/codemirror-lang-svelte': 6.0.0_ybny7xhlf2ysg4majw54z4nkly
'@square/svelte-store': 1.0.14 '@square/svelte-store': 1.0.14
'@storybook/addon-essentials': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-essentials': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-interactions': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-interactions': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-links': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-links': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-svelte-csf': 3.0.0-next.5_hymqig7j7e5z76m3f25pxzkueu '@storybook/addon-svelte-csf': 3.0.0-next.5_q6a7aji4t3j4im2thdo2rd7iga
'@storybook/blocks': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/blocks': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/svelte': 7.0.1_svelte@3.55.1 '@storybook/svelte': 7.1.0-alpha.0_svelte@3.55.1
'@storybook/sveltekit': 7.0.1_hcl52ejjmh2zpx2q5wi2i43hma '@storybook/sveltekit': 7.1.0-alpha.0_hcl52ejjmh2zpx2q5wi2i43hma
'@storybook/testing-library': 0.0.14-next.2 '@storybook/testing-library': 0.0.14-next.2
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@sveltejs/adapter-static': 2.0.1_@sveltejs+kit@1.15.0 '@sveltejs/adapter-static': 2.0.1_@sveltejs+kit@1.15.0
'@sveltejs/kit': 1.15.0_svelte@3.55.1+vite@4.0.4 '@sveltejs/kit': 1.15.0_svelte@3.55.1+vite@4.0.4
'@tauri-apps/api': 1.2.0 '@tauri-apps/api': 1.2.0
@ -133,7 +134,7 @@ devDependencies:
prettier-plugin-tailwindcss: 0.2.4_yjdjpc7im5hvpskij45owfsns4 prettier-plugin-tailwindcss: 0.2.4_yjdjpc7im5hvpskij45owfsns4
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
storybook: 7.0.1 storybook: 7.1.0-alpha.0
svelte: 3.55.1 svelte: 3.55.1
svelte-check: 3.0.3_gqx7lw3sljhsd4bstor5m2aa2u svelte-check: 3.0.3_gqx7lw3sljhsd4bstor5m2aa2u
svelte-floating-ui: 1.5.2 svelte-floating-ui: 1.5.2
@ -141,6 +142,7 @@ devDependencies:
svelte-resize-observer: 2.0.0 svelte-resize-observer: 2.0.0
tailwindcss: 3.2.4_postcss@8.4.21 tailwindcss: 3.2.4_postcss@8.4.21
tauri-plugin-log-api: github.com/tauri-apps/tauri-plugin-log/05a9bfd9edb9b5f4ab95412bb607691708b65a25 tauri-plugin-log-api: github.com/tauri-apps/tauri-plugin-log/05a9bfd9edb9b5f4ab95412bb607691708b65a25
tauri-plugin-websocket-api: github.com/tauri-apps/tauri-plugin-websocket/ee8a3465278043d8bfa09f5d79fd9f23bf2a5aa9
tinykeys: 1.4.0 tinykeys: 1.4.0
tslib: 2.5.0 tslib: 2.5.0
typescript: 4.9.5 typescript: 4.9.5
@ -2365,8 +2367,8 @@ packages:
svelte: 3.55.1 svelte: 3.55.1
dev: true dev: true
/@storybook/addon-actions/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-actions/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-XAIOZ0z8ogsYRoq5UgV0LG0nxulGicQCcIym4omV0nhvPiG1EfNkuALFyMazPlz4DA+MQUznlr1xpNkpMWGcBA==} resolution: {integrity: sha512-aLvgK4NZLh+LsZ5HynYfpRJywd/zNSa5cbxdqq+xPtDWVdbLwVFyNtlOZ+RQoFlgq53+Yt0+Usx/NsOZYEQp8A==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2376,14 +2378,14 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
dequal: 2.0.3 dequal: 2.0.3
lodash: 4.17.21 lodash: 4.17.21
polished: 4.2.2 polished: 4.2.2
@ -2396,8 +2398,8 @@ packages:
uuid-browser: 3.1.0 uuid-browser: 3.1.0
dev: true dev: true
/@storybook/addon-backgrounds/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-backgrounds/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-R+jo39If61q/SUyA8XlUzIbIgNn7GCENMw5RXhDddfQn1pf307rKcS2ng5jO5OXShLBekpoFhsNcuDhejowbsQ==} resolution: {integrity: sha512-MjP19uJwnt4Jnawi1iP1QpTubv6SP0DCOtgwU1qvZxNWXx6LbkaVl3X6kzu9mOS0UOpSlNZNx/+ch6IXfe+FHQ==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2407,22 +2409,22 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
memoizerific: 1.11.3 memoizerific: 1.11.3
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
ts-dedent: 2.2.0 ts-dedent: 2.2.0
dev: true dev: true
/@storybook/addon-controls/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-controls/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-Jzrtw5qU0jCdPrXNoCCrUMmOYOq25or0vL0cWqi1DuriEimVqEB6pe1oSfvE6qLzkTYuyOFCz7Navh7UmwZV/w==} resolution: {integrity: sha512-9KyPMfAoHKbFiRyW9sO7Zq4LUc4L8PTcBoOqLrVxoQ72YG1/uqbMx1Tc7tJMH9nyaabZeoJwSEeLJbXr0Jxlcw==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2432,15 +2434,15 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
'@storybook/blocks': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/blocks': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/core-common': 7.0.1 '@storybook/core-common': 7.1.0-alpha.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
lodash: 4.17.21 lodash: 4.17.21
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
@ -2449,8 +2451,8 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@storybook/addon-docs/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-docs/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-qC0dnhYQlrsrTHUftedb643f9W435yeEOzpfqLDfhSExz2w1dCiTA5KwfbZPdZu0JIjQKR8wqLSIQLzhQLbYYQ==} resolution: {integrity: sha512-Qo0DUgtYZQN7Tbw5871blq5p8YZM/2K+0wAri5HJ+WimBcuvZoDL97ULnX2pddj/+V5NzoflEiv7kYVvKr2xyA==}
peerDependencies: peerDependencies:
'@storybook/mdx1-csf': '>=1.0.0-0' '@storybook/mdx1-csf': '>=1.0.0-0'
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2463,19 +2465,19 @@ packages:
'@babel/plugin-transform-react-jsx': 7.21.0_@babel+core@7.21.3 '@babel/plugin-transform-react-jsx': 7.21.0_@babel+core@7.21.3
'@jest/transform': 29.5.0 '@jest/transform': 29.5.0
'@mdx-js/react': 2.3.0_react@18.2.0 '@mdx-js/react': 2.3.0_react@18.2.0
'@storybook/blocks': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/blocks': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/csf-plugin': 7.0.1 '@storybook/csf-plugin': 7.1.0-alpha.0
'@storybook/csf-tools': 7.0.1 '@storybook/csf-tools': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/mdx2-csf': 1.0.0 '@storybook/mdx2-csf': 1.0.0
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@storybook/postinstall': 7.0.1 '@storybook/postinstall': 7.1.0-alpha.0
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/react-dom-shim': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/react-dom-shim': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
fs-extra: 11.1.1 fs-extra: 11.1.1
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
@ -2486,25 +2488,25 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@storybook/addon-essentials/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-essentials/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-AiBGPFir4OeJl0vRCNM5AWDSZFGlN7Dfsxbuh0TA3O1i8jlG3v0EbtRzuRoZq5qyK4o/KlSmwjzlhZfQLbqUOg==} resolution: {integrity: sha512-7CzzYL3EkWwMjdh9iFUlz+YazO24DAiR8yINjQF8K/2OkMDGEr9UsIbuBqNpImvpPYBp2rodG1G2CC5Te5chqQ==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies: dependencies:
'@storybook/addon-actions': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-actions': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-backgrounds': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-backgrounds': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-controls': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-controls': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-docs': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-docs': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-highlight': 7.0.1 '@storybook/addon-highlight': 7.1.0-alpha.0
'@storybook/addon-measure': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-measure': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-outline': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-outline': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-toolbars': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-toolbars': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/addon-viewport': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/addon-viewport': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/core-common': 7.0.1 '@storybook/core-common': 7.1.0-alpha.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
ts-dedent: 2.2.0 ts-dedent: 2.2.0
@ -2513,16 +2515,16 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@storybook/addon-highlight/7.0.1: /@storybook/addon-highlight/7.1.0-alpha.0:
resolution: {integrity: sha512-megyiaGt83836iFrfTPSII4irxE3w6Ut2UenGrAFmW9yYq50eOvRa5/g7MUaYw7xLSt7ph0hZfOgFYM5Dcucpg==} resolution: {integrity: sha512-Vg7Fiv59ER9Hj5YzLZc6NTdAyijSpSWiUCUqxYhoyfirD8PBfLhC6jywB5VaIbj0TSaSac2WemJ1apND4XOHCg==}
dependencies: dependencies:
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
dev: true dev: true
/@storybook/addon-interactions/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-interactions/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-WJxhg8/CDt2wj8/lWotQaMNtJt3DOlBbZmYIrOscc6KCYYT6/oDjtJwfC70nPOa+xzKTTXQVjtd9ptPYXmYnUA==} resolution: {integrity: sha512-kq/ouMhlWniJCkfAhFxfc9TyeeMcG1oJj+2wIqoWcXWkSGfuaXFcLz2dCJsXVCdgDRqAqTiOq7mjy7amizNrEg==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2532,16 +2534,16 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/core-common': 7.0.1 '@storybook/core-common': 7.1.0-alpha.0
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/instrumenter': 7.0.1 '@storybook/instrumenter': 7.1.0-alpha.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
jest-mock: 27.5.1 jest-mock: 27.5.1
polished: 4.2.2 polished: 4.2.2
react: 18.2.0 react: 18.2.0
@ -2551,8 +2553,8 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@storybook/addon-links/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-links/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-ZKDfpLXPgMt8iopZw3FNCWgfKGSeblAAzOgS/pMdW9Sh6wocvEzcg5ysTqngtXWlBJWiRo1GmpuwhY9srrLaeA==} resolution: {integrity: sha512-qx105KbSCSgZSyvBtlw8zjX5lJc76cI2BiRZZGp75ioa9xtfHqrsg/6pC6m5uqQXTBjxvPImsr7ZEsWKdQ1Rmw==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2562,22 +2564,22 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/csf': 0.1.0 '@storybook/csf': 0.1.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/router': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/router': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
prop-types: 15.8.1 prop-types: 15.8.1
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
ts-dedent: 2.2.0 ts-dedent: 2.2.0
dev: true dev: true
/@storybook/addon-measure/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-measure/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-TAlNblxm/XOtuNuQl32h7uaKlAiMCQ2Ce+FgIINI4ck63gjN7cePctkafyFkIg4JC5iMCROzzv8JUCxhDIw0aQ==} resolution: {integrity: sha512-GeLUJwyFyAQALfukVxDkBNcNMZx8t4OP/MlvPCN50iq60m+77pu9ax+7qURG8e7GJCftCn7eeY1l1DiCtAURWA==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2587,19 +2589,19 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
dev: true dev: true
/@storybook/addon-outline/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-outline/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-IwnjblSh1DNUtcFsYYX2GUems+2ueW2MLJz29x1/djgOAiDiM2oMygb/ee29yr0F+J2rQnwiTx2Ja9Gtp+0m9Q==} resolution: {integrity: sha512-gSZjfIcwsBDhpRPOtTPocZnsN07d01dkIEh2xOk8ARYc3fHrlAoCEvJ0iBnOOJH4MtnNUBJpTb1qy+CsHpYbFQ==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2609,19 +2611,19 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
ts-dedent: 2.2.0 ts-dedent: 2.2.0
dev: true dev: true
/@storybook/addon-svelte-csf/3.0.0-next.5_hymqig7j7e5z76m3f25pxzkueu: /@storybook/addon-svelte-csf/3.0.0-next.5_q6a7aji4t3j4im2thdo2rd7iga:
resolution: {integrity: sha512-rGXjQqAxPbk9/NNBpLpWduNryuUbLSd0L/BD4TmtoeCG6YkwnPxSOzIkGg9DN94OhBSleSJZucz4e/LpeUqSmw==} resolution: {integrity: sha512-rGXjQqAxPbk9/NNBpLpWduNryuUbLSd0L/BD4TmtoeCG6YkwnPxSOzIkGg9DN94OhBSleSJZucz4e/LpeUqSmw==}
peerDependencies: peerDependencies:
'@storybook/svelte': ^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0 '@storybook/svelte': ^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0
@ -2639,8 +2641,8 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@babel/runtime': 7.21.0 '@babel/runtime': 7.21.0
'@storybook/svelte': 7.0.1_svelte@3.55.1 '@storybook/svelte': 7.1.0-alpha.0_svelte@3.55.1
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
fs-extra: 11.1.1 fs-extra: 11.1.1
magic-string: 0.30.0 magic-string: 0.30.0
svelte: 3.55.1 svelte: 3.55.1
@ -2648,8 +2650,8 @@ packages:
vite: 4.0.4 vite: 4.0.4
dev: true dev: true
/@storybook/addon-toolbars/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-toolbars/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-tcYb9I4YDlQJcZXK8H2l8F/04lDpzzSj2Vzi/dQJquWNsQjXSEsPik9ZVb87zZ4uZ8pVf0t0INhiwTR6dUWzpA==} resolution: {integrity: sha512-HhNX53rFtnA8+hZ9kYP9uR7P/dvwQKWy1c1L1Z5Twe0Kw2585dJbtXA3VJ8oIoD6R6e/AHTFWujJJrT3NrHr8w==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2659,17 +2661,17 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
dev: true dev: true
/@storybook/addon-viewport/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/addon-viewport/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-qgIVtC0FFcbQU7B17L8IH6naWWvQG0LtGhLC6A1z1xSsioeF6+W6vACBKRa4OnpdXjSbx4SLd0nIzEbekUfyLg==} resolution: {integrity: sha512-4MoaFCq8hGhQbdSBqckTTiqgq299c2jhdsoHSMOhNT7QnY54kE6pod6w5VCZD7JH5ltzThEJD764Q+WBqqgfpw==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -2679,36 +2681,36 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
memoizerific: 1.11.3 memoizerific: 1.11.3
prop-types: 15.8.1 prop-types: 15.8.1
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
dev: true dev: true
/@storybook/blocks/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/blocks/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-w3n4ddIP2arB+gyZux2wPYCEV7li+SLFV2MhWVtUQwgoeXmiQpMCgIXpG29EjQf+oi9mhRqTWjKLHblU/WukmQ==} resolution: {integrity: sha512-tEFK4UOCsFbrSa6R3rOwUjBbEYOLUScF6hjtza9bsLW6tUcYG4qZdZi/nOpVdzkGfoRkmXJRoD11aRi8I9KJ+g==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies: dependencies:
'@storybook/channels': 7.0.1 '@storybook/channels': 7.1.0-alpha.0
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/components': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/components': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/csf': 0.1.0 '@storybook/csf': 0.1.0
'@storybook/docs-tools': 7.0.1 '@storybook/docs-tools': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager-api': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/manager-api': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
'@types/lodash': 4.14.191 '@types/lodash': 4.14.191
color-convert: 2.0.1 color-convert: 2.0.1
dequal: 2.0.3 dequal: 2.0.3
@ -2726,13 +2728,13 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@storybook/builder-manager/7.0.1: /@storybook/builder-manager/7.1.0-alpha.0:
resolution: {integrity: sha512-fOyYEW9mSCHM8KL7mVX1bSjTzpyCMap/ZC356NY981qO4kihp9wGCIOFOEwyb1t8WxZVu/zSTr2o+/1Un8CrOg==} resolution: {integrity: sha512-d3WiL/1lXhubAdBblRYLD/s/3Lmf2op9eXysFAv2iUQIB6TtgdOG3auPZRoOx54P1jua3iz2nCfMsZlzwW791g==}
dependencies: dependencies:
'@fal-works/esbuild-plugin-global-externals': 2.1.2 '@fal-works/esbuild-plugin-global-externals': 2.1.2
'@storybook/core-common': 7.0.1 '@storybook/core-common': 7.1.0-alpha.0
'@storybook/manager': 7.0.1 '@storybook/manager': 7.1.0-alpha.0
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@types/ejs': 3.1.2 '@types/ejs': 3.1.2
'@types/find-cache-dir': 3.2.1 '@types/find-cache-dir': 3.2.1
'@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15_esbuild@0.17.14 '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15_esbuild@0.17.14
@ -2749,8 +2751,8 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@storybook/builder-vite/7.0.1_egung5nfepmolqa7uavvqho3gq: /@storybook/builder-vite/7.1.0-alpha.0_egung5nfepmolqa7uavvqho3gq:
resolution: {integrity: sha512-IXAIKB6Lt66RrONNXIaoq0CsyoSZMo6QFbeJLezvCU8UarXvME/XVGkyTm6nVaGxnF/HW0rhknNMRZ1JFSNULA==} resolution: {integrity: sha512-9N+voTydxZ4Dyy/ZK+TYgu31W/ERKvTokzl2DVDCSgNA98Y92rxsExA2+ipsdjMMfDqSVUrU6njH2A5vAzl9fg==}
peerDependencies: peerDependencies:
'@preact/preset-vite': '*' '@preact/preset-vite': '*'
'@storybook/mdx1-csf': '>=1.0.0-next.1' '@storybook/mdx1-csf': '>=1.0.0-next.1'
@ -2767,16 +2769,16 @@ packages:
vite-plugin-glimmerx: vite-plugin-glimmerx:
optional: true optional: true
dependencies: dependencies:
'@storybook/channel-postmessage': 7.0.1 '@storybook/channel-postmessage': 7.1.0-alpha.0
'@storybook/channel-websocket': 7.0.1 '@storybook/channel-websocket': 7.1.0-alpha.0
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/core-common': 7.0.1 '@storybook/core-common': 7.1.0-alpha.0
'@storybook/csf-plugin': 7.0.1 '@storybook/csf-plugin': 7.1.0-alpha.0
'@storybook/mdx2-csf': 1.0.0 '@storybook/mdx2-csf': 1.0.0
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@storybook/preview': 7.0.1 '@storybook/preview': 7.1.0-alpha.0
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
browser-assert: 1.2.1 browser-assert: 1.2.1
es-module-lexer: 0.9.3 es-module-lexer: 0.9.3
express: 4.18.2 express: 4.18.2
@ -2804,11 +2806,22 @@ packages:
telejson: 7.0.4 telejson: 7.0.4
dev: true dev: true
/@storybook/channel-websocket/7.0.1: /@storybook/channel-postmessage/7.1.0-alpha.0:
resolution: {integrity: sha512-WJM9xkh9YnDS7zAw25GhbptTSxWBtkOdm5Kkp1vZEZOD19L288ZsJ8g0HfAYMBsthZzG6U8thiIiTICDGXvx7w==} resolution: {integrity: sha512-uNt2+hsf31DT2c/QkwjZFIJ/tE4BLe/JQss721/9xR91WsCestdcJfDhUHLcC+d2q2qoLq29rWrWW2TK+kojKw==}
dependencies: dependencies:
'@storybook/channels': 7.0.1 '@storybook/channels': 7.1.0-alpha.0
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/core-events': 7.1.0-alpha.0
'@storybook/global': 5.0.0
qs: 6.11.1
telejson: 7.0.4
dev: true
/@storybook/channel-websocket/7.1.0-alpha.0:
resolution: {integrity: sha512-JOALMW+TSFV/eZitV+ijiklEBnu1gvoY1J19ki7uYCEUkA/Ty6ZxbcLmXxDCmEZpd25//FnDUrum4lyzgLvUkA==}
dependencies:
'@storybook/channels': 7.1.0-alpha.0
'@storybook/client-logger': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
telejson: 7.0.4 telejson: 7.0.4
dev: true dev: true
@ -2817,20 +2830,24 @@ packages:
resolution: {integrity: sha512-Hm/vrCkpxvZRIIjs9vwLDvK4TVINj8E3xRBPq29qUs/kdpf3f8+NiYd/gRXN+JNH7Ov1NC4L5khlR1rXh5AUNQ==} resolution: {integrity: sha512-Hm/vrCkpxvZRIIjs9vwLDvK4TVINj8E3xRBPq29qUs/kdpf3f8+NiYd/gRXN+JNH7Ov1NC4L5khlR1rXh5AUNQ==}
dev: true dev: true
/@storybook/cli/7.0.1: /@storybook/channels/7.1.0-alpha.0:
resolution: {integrity: sha512-ul8tbEeGjmp2TbLh54lnJrcqg3r9R/sqzp7WyjFEX5ZM8OZ+Lx89LHjE6XidIF1uERYPxg522NGXwIjir4UGrg==} resolution: {integrity: sha512-9FGJaJU7FdrsF4O8JmvJe/8L3VoriNFssMGH+zkl4Amk0lpEQ/zB9FnHTaALV2hP5DUdtHhyO81u3YXQrmgOUQ==}
dev: true
/@storybook/cli/7.1.0-alpha.0:
resolution: {integrity: sha512-6ogRZ3B1QXd4AVl21QeSIYVqEzSQZdeg79BNx+85cYdpzskX3PDrcWVM0rXFKXoXeVd0LyJ0uOh6ZxN2pMM6Tw==}
hasBin: true hasBin: true
dependencies: dependencies:
'@babel/core': 7.21.3 '@babel/core': 7.21.3
'@babel/preset-env': 7.21.4_@babel+core@7.21.3 '@babel/preset-env': 7.21.4_@babel+core@7.21.3
'@ndelangen/get-tarball': 3.0.7 '@ndelangen/get-tarball': 3.0.7
'@storybook/codemod': 7.0.1 '@storybook/codemod': 7.1.0-alpha.0
'@storybook/core-common': 7.0.1 '@storybook/core-common': 7.1.0-alpha.0
'@storybook/core-server': 7.0.1 '@storybook/core-server': 7.1.0-alpha.0
'@storybook/csf-tools': 7.0.1 '@storybook/csf-tools': 7.1.0-alpha.0
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@storybook/telemetry': 7.0.1 '@storybook/telemetry': 7.1.0-alpha.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
'@types/semver': 7.3.13 '@types/semver': 7.3.13
boxen: 5.1.2 boxen: 5.1.2
chalk: 4.1.2 chalk: 4.1.2
@ -2872,16 +2889,22 @@ packages:
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
dev: true dev: true
/@storybook/codemod/7.0.1: /@storybook/client-logger/7.1.0-alpha.0:
resolution: {integrity: sha512-I46DbqVdtlOSZ3nnf6f/cRrkRb0fAC3hTkb3+lw4gESv9bK5IS9IrG/QWDXDqtQxLgw9uNu7Jgn5lUX+kg3IDA==} resolution: {integrity: sha512-NFIFFeKgZxSXvDnd0nTG1MehTw1j7tMCg8rbK4lJ/R5waQkygJ/9QDVXZlZjC9+FU/Gj175iSIf5LNCHQjylAQ==}
dependencies:
'@storybook/global': 5.0.0
dev: true
/@storybook/codemod/7.1.0-alpha.0:
resolution: {integrity: sha512-fEXyW8d7YAfphXCceBdtV2C3Qeh9cNAQUIGGn3+KCuiSlRikH1opvIvCaxe1XA1jJ018LqKp0pAQtaHci8OYqQ==}
dependencies: dependencies:
'@babel/core': 7.21.3 '@babel/core': 7.21.3
'@babel/preset-env': 7.21.4_@babel+core@7.21.3 '@babel/preset-env': 7.21.4_@babel+core@7.21.3
'@babel/types': 7.21.4 '@babel/types': 7.21.4
'@storybook/csf': 0.1.0 '@storybook/csf': 0.1.0
'@storybook/csf-tools': 7.0.1 '@storybook/csf-tools': 7.1.0-alpha.0
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
cross-spawn: 7.0.3 cross-spawn: 7.0.3
globby: 11.1.0 globby: 11.1.0
jscodeshift: 0.14.0_@babel+preset-env@7.21.4 jscodeshift: 0.14.0_@babel+preset-env@7.21.4
@ -2892,17 +2915,17 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@storybook/components/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/components/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-AqIJMBVlBkBl41IaltQluWoHkvuZMpf0ncDZpS6445SexdLLSJfOh6tLZe44JMmxmmb5zdI0ZiMYgqpNst6SUw==} resolution: {integrity: sha512-cJjiGDusSg9XCrTwnp6S13LmuHByumlvbvUsooCaWbLL5CsQbhHaXjj/04sxxQFuNz8vl+cUGG5RRUTJtEZbRQ==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/csf': 0.1.0 '@storybook/csf': 0.1.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
memoizerific: 1.11.3 memoizerific: 1.11.3
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
@ -2910,18 +2933,18 @@ packages:
util-deprecate: 1.0.2 util-deprecate: 1.0.2
dev: true dev: true
/@storybook/core-client/7.0.1: /@storybook/core-client/7.1.0-alpha.0:
resolution: {integrity: sha512-x/nn4RCzAhDXdC+6t4ugrOJ/ZBw7sthqKJ/LcJDaAaOZ/srmeN8agobb6Gw2Q7U69yWTwwuYYgZWZh2Y4+TLdA==} resolution: {integrity: sha512-iLHJFlWkT3OA73U03yN+D2ZNFfngWPjwCd8q2Q0+jG3TdegUnmUDVHIs9BeDVaH4cnqbDiBfY8Fwy+DmwT+WMw==}
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
dev: true dev: true
/@storybook/core-common/7.0.1: /@storybook/core-common/7.1.0-alpha.0:
resolution: {integrity: sha512-QXVc31IZ6Zd0TPGpidpIPbkWUoAuI1WPu88JVu3q/l+ryFuMPOwAGAc8Pl2z3Nb3wK0kH+YRh+5Fbfh1g7TamA==} resolution: {integrity: sha512-83EiqRptheyzKXJuQniar3IXNJEL7ezfyPWNwXqdcLDiT6i7Bu/20HFluVvh5atulHHDCunPu1dEWmcsmFf4nw==}
dependencies: dependencies:
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
'@types/node': 16.18.21 '@types/node': 16.18.21
'@types/pretty-hrtime': 1.0.1 '@types/pretty-hrtime': 1.0.1
chalk: 4.1.2 chalk: 4.1.2
@ -2947,23 +2970,27 @@ packages:
resolution: {integrity: sha512-Q3wBHoahO5d7Zm0S0zvXIqnG/fuf02RNMjTiAMYG55MlPZEmu3ll4VzDtroeku4Zwo9xbHGxgVQH5LFScQncEQ==} resolution: {integrity: sha512-Q3wBHoahO5d7Zm0S0zvXIqnG/fuf02RNMjTiAMYG55MlPZEmu3ll4VzDtroeku4Zwo9xbHGxgVQH5LFScQncEQ==}
dev: true dev: true
/@storybook/core-server/7.0.1: /@storybook/core-events/7.1.0-alpha.0:
resolution: {integrity: sha512-blDkMUWuwwXwAFmvr/08LJVKWBbWlhVtux/CNM0CEQWmMXRe82E4T75JLLNIZLesxtfsFjnjY0WNpebFuXasMA==} resolution: {integrity: sha512-GckKwXy5rcbeLym9yvwziT3KiryLr3uvh2hF9F3Tde1iKvi822Acytg8viVQIUahzdBvlnaRZIIBxhAFPIAu5g==}
dev: true
/@storybook/core-server/7.1.0-alpha.0:
resolution: {integrity: sha512-/R9rbv3lRAkXbLxe24d9yNS8B3u0dD2wmYRwy4wKFFmJQ6rSy+2OEUSkdGXLI7Dez7jGL7TgMT5XbD4ILrDiqg==}
dependencies: dependencies:
'@aw-web-design/x-default-browser': 1.4.88 '@aw-web-design/x-default-browser': 1.4.88
'@discoveryjs/json-ext': 0.5.7 '@discoveryjs/json-ext': 0.5.7
'@storybook/builder-manager': 7.0.1 '@storybook/builder-manager': 7.1.0-alpha.0
'@storybook/core-common': 7.0.1 '@storybook/core-common': 7.1.0-alpha.0
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/csf': 0.1.0 '@storybook/csf': 0.1.0
'@storybook/csf-tools': 7.0.1 '@storybook/csf-tools': 7.1.0-alpha.0
'@storybook/docs-mdx': 0.1.0 '@storybook/docs-mdx': 0.1.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/manager': 7.0.1 '@storybook/manager': 7.1.0-alpha.0
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/telemetry': 7.0.1 '@storybook/telemetry': 7.1.0-alpha.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
'@types/detect-port': 1.3.2 '@types/detect-port': 1.3.2
'@types/node': 16.18.21 '@types/node': 16.18.21
'@types/node-fetch': 2.6.2 '@types/node-fetch': 2.6.2
@ -2999,24 +3026,24 @@ packages:
- utf-8-validate - utf-8-validate
dev: true dev: true
/@storybook/csf-plugin/7.0.1: /@storybook/csf-plugin/7.1.0-alpha.0:
resolution: {integrity: sha512-YRNQUUMAzioucBNEs8ZHDqLAn1s5ZAAdbC3WnxYyd5sjCFjCXv7Ilkp25FodFTPwW0VR7Jt6VbWHx0JMvjlKPQ==} resolution: {integrity: sha512-4VT3xVb2cOPUbDChOTIEoW7Jq1TpBplpoutFxxbEWbMxI0dTQh7Tq1hdOvGe4D6Tg2xCtEdbRLYHFmT99r2JKg==}
dependencies: dependencies:
'@storybook/csf-tools': 7.0.1 '@storybook/csf-tools': 7.1.0-alpha.0
unplugin: 0.10.2 unplugin: 0.10.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@storybook/csf-tools/7.0.1: /@storybook/csf-tools/7.1.0-alpha.0:
resolution: {integrity: sha512-sqqqjWnF+JTWawf6lmcgZTKVasex6OtoXnLCYESrIm0Wfln5Sd+CjEh2hq4pYJWRAK/USCQREvbcZnblXa+fcg==} resolution: {integrity: sha512-Xh7/qV7CGWFow3iCbPvKJ6LHUD+cwybMJF440xZzDldMdCIP8UpbgI8GaQkAzAtDQnZhYmyrHEAXSHDdJkVC/g==}
dependencies: dependencies:
'@babel/generator': 7.21.3 '@babel/generator': 7.21.3
'@babel/parser': 7.21.3 '@babel/parser': 7.21.3
'@babel/traverse': 7.21.3 '@babel/traverse': 7.21.3
'@babel/types': 7.21.4 '@babel/types': 7.21.4
'@storybook/csf': 0.1.0 '@storybook/csf': 0.1.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
fs-extra: 11.1.1 fs-extra: 11.1.1
recast: 0.23.1 recast: 0.23.1
ts-dedent: 2.2.0 ts-dedent: 2.2.0
@ -3034,13 +3061,13 @@ packages:
resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==} resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==}
dev: true dev: true
/@storybook/docs-tools/7.0.1: /@storybook/docs-tools/7.1.0-alpha.0:
resolution: {integrity: sha512-tx7QugGJtmdmiNlfiTvffnMlA5uDKr580nvAmGEq6ZhjhxpnUIlNnYGYPotsRyOiLN9+sV6qb160F10nf5zk+g==} resolution: {integrity: sha512-LDthzWCd9Lq7+3yNektx5WQrV41ltsnHhuaimFsDA1yVmceouyKG4j2eWBP5TI96+1vpe2aE5ts9JCc7/pUKMg==}
dependencies: dependencies:
'@babel/core': 7.21.3 '@babel/core': 7.21.3
'@storybook/core-common': 7.0.1 '@storybook/core-common': 7.1.0-alpha.0
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
'@types/doctrine': 0.0.3 '@types/doctrine': 0.0.3
doctrine: 3.0.0 doctrine: 3.0.0
lodash: 4.17.21 lodash: 4.17.21
@ -3062,20 +3089,30 @@ packages:
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.0.1
dev: true dev: true
/@storybook/manager-api/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/instrumenter/7.1.0-alpha.0:
resolution: {integrity: sha512-nUAdxCzYuJ8sv8NlOSYchVznwZhWxhNjx6MpIQkG1vTrApvbPaehYbhIR2BeHWCrFQWPAjBgP5gPHr6m/6eSYg==} resolution: {integrity: sha512-ySi6SXRAKoY202QZaUQqsdBXV3YhlcIfIkfdrcOOa8+abwxQABrZJeRQi41gGWIiqXDWTfx2BZDlaRU39Kyw5Q==}
dependencies:
'@storybook/channels': 7.1.0-alpha.0
'@storybook/client-logger': 7.1.0-alpha.0
'@storybook/core-events': 7.1.0-alpha.0
'@storybook/global': 5.0.0
'@storybook/preview-api': 7.1.0-alpha.0
dev: true
/@storybook/manager-api/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-hykc2La8h9Xb7s6wgbGDFt95ANZ4drmT59KorQyTym7ADmSot+8iwFSCNiZS2qxNJP14nSIzV/39fvPAxCD2YA==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies: dependencies:
'@storybook/channels': 7.0.1 '@storybook/channels': 7.1.0-alpha.0
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/csf': 0.1.0 '@storybook/csf': 0.1.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/router': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/router': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/theming': 7.0.1_biqbaboplfbrettd7655fr4n2y '@storybook/theming': 7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
dequal: 2.0.3 dequal: 2.0.3
lodash: 4.17.21 lodash: 4.17.21
memoizerific: 1.11.3 memoizerific: 1.11.3
@ -3087,16 +3124,16 @@ packages:
ts-dedent: 2.2.0 ts-dedent: 2.2.0
dev: true dev: true
/@storybook/manager/7.0.1: /@storybook/manager/7.1.0-alpha.0:
resolution: {integrity: sha512-FNiG3ka5LszBhunKu2sa406Rz2xBXk8xIfYQyCoNouVi23hInjNi04O1tOPLvi+bVQq4Zeo7zR47aXMESAP3oA==} resolution: {integrity: sha512-TnkZYTtcWc95NqwrSLkFo5HM8d5NI8POlPnhh7S+yjWkZKFO6fgjSsa2nVZb8ZR2t56AyVGNFAn2r385F1P+dQ==}
dev: true dev: true
/@storybook/mdx2-csf/1.0.0: /@storybook/mdx2-csf/1.0.0:
resolution: {integrity: sha512-dBAnEL4HfxxJmv7LdEYUoZlQbWj9APZNIbOaq0tgF8XkxiIbzqvgB0jhL/9UOrysSDbQWBiCRTu2wOVxedGfmw==} resolution: {integrity: sha512-dBAnEL4HfxxJmv7LdEYUoZlQbWj9APZNIbOaq0tgF8XkxiIbzqvgB0jhL/9UOrysSDbQWBiCRTu2wOVxedGfmw==}
dev: true dev: true
/@storybook/node-logger/7.0.1: /@storybook/node-logger/7.1.0-alpha.0:
resolution: {integrity: sha512-a2WNMOHLWEuFMVuObujQXLDSBSzLdqiC7KMt2VDU6T3DjkR/ga1J+ky+39PbrmY8qR3Ju8kvRsDIm902wltF6Q==} resolution: {integrity: sha512-+HaMHMs3+PA1l1P3ODSQqKta/J5/SwUIx8oX9feCXsXUI7JC9HBP33vxG1buTlJXmREgnOazG9Efi9/H/c+TZQ==}
dependencies: dependencies:
'@types/npmlog': 4.1.4 '@types/npmlog': 4.1.4
chalk: 4.1.2 chalk: 4.1.2
@ -3104,8 +3141,8 @@ packages:
pretty-hrtime: 1.0.3 pretty-hrtime: 1.0.3
dev: true dev: true
/@storybook/postinstall/7.0.1: /@storybook/postinstall/7.1.0-alpha.0:
resolution: {integrity: sha512-qt9ZTxqX0X1n3p8CNtbI81kQUTtdY6JLVpMqYISez240IgN90+/I59QyZy/CszB5k9OiJBFdzNqILo23Yy++/A==} resolution: {integrity: sha512-CWEIgn+fOseShHxjU147aU03FBcWbEb/+7G1Pue4NX064fOmIoUMa6hUoMAfTA+NDIs71ndQGy3Ba56aNsSh2Q==}
dev: true dev: true
/@storybook/preview-api/7.0.1: /@storybook/preview-api/7.0.1:
@ -3128,12 +3165,32 @@ packages:
util-deprecate: 1.0.2 util-deprecate: 1.0.2
dev: true dev: true
/@storybook/preview/7.0.1: /@storybook/preview-api/7.1.0-alpha.0:
resolution: {integrity: sha512-mqX0zFeB/Gn1CzaMr3LkuimpVnCQBifKKTsPjUPs3v3Xj7l+cF2vIyFCDPJ4vsWkSWDx+M0kuYC0+e6JwmdFnQ==} resolution: {integrity: sha512-wZCEFCpxqjjSGdJKtVYd/ck/Fg/dsU3cPEbjPhUyLQqKnUA/MsR8vVzDtkmugWwupviChfjARvwLdNN8u45OXw==}
dependencies:
'@storybook/channel-postmessage': 7.1.0-alpha.0
'@storybook/channels': 7.1.0-alpha.0
'@storybook/client-logger': 7.1.0-alpha.0
'@storybook/core-events': 7.1.0-alpha.0
'@storybook/csf': 0.1.0
'@storybook/global': 5.0.0
'@storybook/types': 7.1.0-alpha.0
'@types/qs': 6.9.7
dequal: 2.0.3
lodash: 4.17.21
memoizerific: 1.11.3
qs: 6.11.1
synchronous-promise: 2.0.17
ts-dedent: 2.2.0
util-deprecate: 1.0.2
dev: true dev: true
/@storybook/react-dom-shim/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/preview/7.1.0-alpha.0:
resolution: {integrity: sha512-Kz1VuuXSqMcDEjYLiyoUNsIpz9acOsbCnZD2SXei4o63r5RgBtjc3/BOvQldL0an9XhoVH43DKN01nKkZsmEWw==} resolution: {integrity: sha512-5agB4CKIeeLBacHdDcphCxcOSBsSyzKOZrflgLah9PhDXKlzPdPyHoZqO4VedDO7moGFc3mFlThagBNVVSI+uQ==}
dev: true
/@storybook/react-dom-shim/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-DbZ/nD5zFyOQ9sNB2fusArRCBJlTWCyKdmV9E3y5ztXIsQyiWEeHdMhBKqxUTG3eZjqJmMizQ+hCTcVr2V3xKQ==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@ -3142,30 +3199,30 @@ packages:
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
dev: true dev: true
/@storybook/router/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/router/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-1897KLV4BeQN2f+f06AFMkreIksO61ni09EkW3ZKDXA1XaZNQsfLLeGFExNUZ2CFifCM46ulUS8XC/tzq00vgA==} resolution: {integrity: sha512-qq3J2Y6ZLQhcGiXEIhjZKt2U4S/jbtireekMJW4D+TIQIM1VNrfchMF6yqwiitg6D3C2YfbksDdr4zff1YbzWw==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
memoizerific: 1.11.3 memoizerific: 1.11.3
qs: 6.11.1 qs: 6.11.1
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0_react@18.2.0 react-dom: 18.2.0_react@18.2.0
dev: true dev: true
/@storybook/svelte-vite/7.0.1_3rgppvbkzeavxpnueqngpbpqhu: /@storybook/svelte-vite/7.1.0-alpha.0_3rgppvbkzeavxpnueqngpbpqhu:
resolution: {integrity: sha512-TLcbkvhkoRTimShS6UiOPFJBkTEwKRr04ccU/9CozUv8s4Rv5ixoJy5dXM4QLVvISB+AthoPk19jeROcRpys+A==} resolution: {integrity: sha512-REv7B/m4XQdiaLcdlv84BwrBIADARkMBR7j7CW51zscroCdOzh3KntnSOy4D9vzcQZiHTIH5NlnO87I6KF5+hA==}
engines: {node: ^14.18 || >=16} engines: {node: ^14.18 || >=16}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
vite: ^3.0.0 || ^4.0.0 vite: ^3.0.0 || ^4.0.0
dependencies: dependencies:
'@storybook/builder-vite': 7.0.1_egung5nfepmolqa7uavvqho3gq '@storybook/builder-vite': 7.1.0-alpha.0_egung5nfepmolqa7uavvqho3gq
'@storybook/node-logger': 7.0.1 '@storybook/node-logger': 7.1.0-alpha.0
'@storybook/svelte': 7.0.1_svelte@3.55.1 '@storybook/svelte': 7.1.0-alpha.0_svelte@3.55.1
'@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.1+vite@4.0.4 '@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.1+vite@4.0.4
magic-string: 0.27.0 magic-string: 0.27.0
react: 18.2.0 react: 18.2.0
@ -3182,19 +3239,19 @@ packages:
- vite-plugin-glimmerx - vite-plugin-glimmerx
dev: true dev: true
/@storybook/svelte/7.0.1_svelte@3.55.1: /@storybook/svelte/7.1.0-alpha.0_svelte@3.55.1:
resolution: {integrity: sha512-OLcJc+u247omEyxBJUAGItEslxa3QCL7d6Vtvvb6dWfsgzgcTCXSGX8QSLvwES2AdeYyr0UwZkrY85oPJKc/qg==} resolution: {integrity: sha512-0mdMJAcpW4du2crK9yTp+RGg1y/RfwLBL90SB6svAXBoejjJK1Ah0GyjvywcauAYcI+M0IMtrm/KXgWDbBMQJA==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
peerDependencies: peerDependencies:
svelte: ^3.1.0 svelte: ^3.1.0
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/core-client': 7.0.1 '@storybook/core-client': 7.1.0-alpha.0
'@storybook/core-events': 7.0.1 '@storybook/core-events': 7.1.0-alpha.0
'@storybook/docs-tools': 7.0.1 '@storybook/docs-tools': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
'@storybook/preview-api': 7.0.1 '@storybook/preview-api': 7.1.0-alpha.0
'@storybook/types': 7.0.1 '@storybook/types': 7.1.0-alpha.0
svelte: 3.55.1 svelte: 3.55.1
sveltedoc-parser: 4.2.1 sveltedoc-parser: 4.2.1
type-fest: 2.19.0 type-fest: 2.19.0
@ -3202,15 +3259,15 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@storybook/sveltekit/7.0.1_hcl52ejjmh2zpx2q5wi2i43hma: /@storybook/sveltekit/7.1.0-alpha.0_hcl52ejjmh2zpx2q5wi2i43hma:
resolution: {integrity: sha512-/svvaGKtUEY/xaHxLV5YAfnVSWes5f/pKeoiCicwaMNH0TmCyu5ZgIwj2Dr/DCzpBHMJuj9ncNcnZ11Im6oPwA==} resolution: {integrity: sha512-yynGSEBwsd8Fkr7uAn32RC8GMqPjmuRzFrAfEJkSgRjF9x1AWX6eg7tmcKvk5yMYX+GyDUuZyWOBSfvlgmwZOQ==}
engines: {node: ^14.18 || >=16} engines: {node: ^14.18 || >=16}
peerDependencies: peerDependencies:
vite: ^4.0.0 vite: ^4.0.0
dependencies: dependencies:
'@storybook/builder-vite': 7.0.1_egung5nfepmolqa7uavvqho3gq '@storybook/builder-vite': 7.1.0-alpha.0_egung5nfepmolqa7uavvqho3gq
'@storybook/svelte': 7.0.1_svelte@3.55.1 '@storybook/svelte': 7.1.0-alpha.0_svelte@3.55.1
'@storybook/svelte-vite': 7.0.1_3rgppvbkzeavxpnueqngpbpqhu '@storybook/svelte-vite': 7.1.0-alpha.0_3rgppvbkzeavxpnueqngpbpqhu
vite: 4.0.4 vite: 4.0.4
transitivePeerDependencies: transitivePeerDependencies:
- '@preact/preset-vite' - '@preact/preset-vite'
@ -3223,11 +3280,11 @@ packages:
- vite-plugin-glimmerx - vite-plugin-glimmerx
dev: true dev: true
/@storybook/telemetry/7.0.1: /@storybook/telemetry/7.1.0-alpha.0:
resolution: {integrity: sha512-YNFGMnXscymLB2BLtQ1t9mU3eVB+KlR4GOw49GlStNQKsBCManOkM2SpekJDh64VITWJ2ByyQM3lvB38NKcrhg==} resolution: {integrity: sha512-LKuRtzJGzIvXIqWZx+PmEnBgANU2NSKL+9vr92OIcqXnc1saSlvVuYRBa8ibNyJAa+XkC56VfHDszhP3MNc94g==}
dependencies: dependencies:
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/core-common': 7.0.1 '@storybook/core-common': 7.1.0-alpha.0
chalk: 4.1.2 chalk: 4.1.2
detect-package-manager: 2.0.1 detect-package-manager: 2.0.1
fetch-retry: 5.0.4 fetch-retry: 5.0.4
@ -3250,14 +3307,14 @@ packages:
ts-dedent: 2.2.0 ts-dedent: 2.2.0
dev: true dev: true
/@storybook/theming/7.0.1_biqbaboplfbrettd7655fr4n2y: /@storybook/theming/7.1.0-alpha.0_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-E8ZCidh34gLEjEdpzYvb4I9d2frotT4hIdDWrPcR8Med0gjlLuamGPHrZPfiavBENKRiSBANFpBmtmYMXmpXOg==} resolution: {integrity: sha512-ysnXjL8gRM2T6ACuIzGWKrcVjBvPaMGrcogG2vDAqb8qA7XB4DQGAdBbTVxm1uJ6s2HTQq34F1ssgQBEq9gHvg==}
peerDependencies: peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies: dependencies:
'@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0 '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0
'@storybook/client-logger': 7.0.1 '@storybook/client-logger': 7.1.0-alpha.0
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
memoizerific: 1.11.3 memoizerific: 1.11.3
react: 18.2.0 react: 18.2.0
@ -3273,6 +3330,15 @@ packages:
file-system-cache: 2.0.2 file-system-cache: 2.0.2
dev: true dev: true
/@storybook/types/7.1.0-alpha.0:
resolution: {integrity: sha512-84VOCC/NEH6B5puWgK9VGjigmAfTU1iJJmly+OaF2lJv6LeHRb4/UOPSeg8fA8uHh3E32jSRKA2B8sUnxCCQrg==}
dependencies:
'@storybook/channels': 7.1.0-alpha.0
'@types/babel__core': 7.20.0
'@types/express': 4.17.17
file-system-cache: 2.0.2
dev: true
/@sveltejs/adapter-static/2.0.1_@sveltejs+kit@1.15.0: /@sveltejs/adapter-static/2.0.1_@sveltejs+kit@1.15.0:
resolution: {integrity: sha512-o5/q3YwD/ErxYCFlK1v3ydvldyNKk1lh3oeyxn4mhz+Pkbx/uuxhzmbOpytTlp5aVqNHDVsb04xadUzOFCDDzw==} resolution: {integrity: sha512-o5/q3YwD/ErxYCFlK1v3ydvldyNKk1lh3oeyxn4mhz+Pkbx/uuxhzmbOpytTlp5aVqNHDVsb04xadUzOFCDDzw==}
peerDependencies: peerDependencies:
@ -7771,11 +7837,11 @@ packages:
resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==}
dev: true dev: true
/storybook/7.0.1: /storybook/7.1.0-alpha.0:
resolution: {integrity: sha512-EBM6BJlH4IkB0x1EnqRkpHmLFKR9FuVApsdprKgHZ5OQyygZ0D5+YyTiJYrCG52uujjgu1DpVHAXpgufZkSX4Q==} resolution: {integrity: sha512-C+ctQQ1p8783iZgHx7Lq8m6tAQIUEy2zXj4wvSibzYc/LHsbuvcSLuLZL/2XHYwcA51ug2FeGDDvgwgaBZSUhw==}
hasBin: true hasBin: true
dependencies: dependencies:
'@storybook/cli': 7.0.1 '@storybook/cli': 7.1.0-alpha.0
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- encoding - encoding
@ -8682,3 +8748,11 @@ packages:
dependencies: dependencies:
'@tauri-apps/api': 1.2.0 '@tauri-apps/api': 1.2.0
dev: true dev: true
github.com/tauri-apps/tauri-plugin-websocket/ee8a3465278043d8bfa09f5d79fd9f23bf2a5aa9:
resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-websocket/tar.gz/ee8a3465278043d8bfa09f5d79fd9f23bf2a5aa9}
name: tauri-plugin-websocket-api
version: 0.0.0
dependencies:
'@tauri-apps/api': 1.2.0
dev: true

197
src-tauri/Cargo.lock generated
View File

@ -52,15 +52,6 @@ dependencies = [
"alloc-no-stdlib", "alloc-no-stdlib",
] ]
[[package]]
name = "android_system_properties"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.70" version = "1.0.70"
@ -374,21 +365,6 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
dependencies = [
"iana-time-zone",
"js-sys",
"num-integer",
"num-traits 0.2.15",
"time 0.1.45",
"wasm-bindgen",
"winapi",
]
[[package]] [[package]]
name = "cocoa" name = "cocoa"
version = "0.24.1" version = "0.24.1"
@ -420,16 +396,6 @@ dependencies = [
"objc", "objc",
] ]
[[package]]
name = "codespan-reporting"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
dependencies = [
"termcolor",
"unicode-width",
]
[[package]] [[package]]
name = "color_quant" name = "color_quant"
version = "1.1.0" version = "1.1.0"
@ -679,50 +645,6 @@ dependencies = [
"syn 1.0.109", "syn 1.0.109",
] ]
[[package]]
name = "cxx"
version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9c00419335c41018365ddf7e4d5f1c12ee3659ddcf3e01974650ba1de73d038"
dependencies = [
"cc",
"cxxbridge-flags",
"cxxbridge-macro",
"link-cplusplus",
]
[[package]]
name = "cxx-build"
version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb8307ad413a98fff033c8545ecf133e3257747b3bae935e7602aab8aa92d4ca"
dependencies = [
"cc",
"codespan-reporting",
"once_cell",
"proc-macro2",
"quote",
"scratch",
"syn 2.0.8",
]
[[package]]
name = "cxxbridge-flags"
version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edc52e2eb08915cb12596d29d55f0b5384f00d697a646dbd269b6ecb0fbd9d31"
[[package]]
name = "cxxbridge-macro"
version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "631569015d0d8d54e6c241733f944042623ab6df7bc3be7466874b05fcdb1c5f"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.8",
]
[[package]] [[package]]
name = "darling" name = "darling"
version = "0.10.2" version = "0.10.2"
@ -1376,7 +1298,6 @@ dependencies = [
"git2", "git2",
"log", "log",
"md5", "md5",
"mt_logger",
"notify", "notify",
"portable-pty", "portable-pty",
"reqwest", "reqwest",
@ -1390,6 +1311,7 @@ dependencies = [
"tauri", "tauri",
"tauri-build", "tauri-build",
"tauri-plugin-log", "tauri-plugin-log",
"tauri-plugin-websocket",
"tauri-plugin-window-state", "tauri-plugin-window-state",
"tempfile", "tempfile",
"thiserror", "thiserror",
@ -1738,30 +1660,6 @@ dependencies = [
"tokio-native-tls", "tokio-native-tls",
] ]
[[package]]
name = "iana-time-zone"
version = "0.1.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
"windows 0.46.0",
]
[[package]]
name = "iana-time-zone-haiku"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
dependencies = [
"cxx",
"cxx-build",
]
[[package]] [[package]]
name = "ico" name = "ico"
version = "0.2.0" version = "0.2.0"
@ -2122,15 +2020,6 @@ dependencies = [
"safemem", "safemem",
] ]
[[package]]
name = "link-cplusplus"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
dependencies = [
"cc",
]
[[package]] [[package]]
name = "linux-raw-sys" name = "linux-raw-sys"
version = "0.1.4" version = "0.1.4"
@ -2380,16 +2269,6 @@ dependencies = [
"windows-sys 0.45.0", "windows-sys 0.45.0",
] ]
[[package]]
name = "mt_logger"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c268d3423e270b204b82cf8245ec3eeebb1208a49e250a04f175a874459bc91"
dependencies = [
"chrono",
"once_cell",
]
[[package]] [[package]]
name = "murmurhash32" name = "murmurhash32"
version = "0.2.0" version = "0.2.0"
@ -2931,7 +2810,7 @@ dependencies = [
"line-wrap", "line-wrap",
"quick-xml", "quick-xml",
"serde", "serde",
"time 0.3.20", "time",
] ]
[[package]] [[package]]
@ -3423,12 +3302,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "scratch"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1"
[[package]] [[package]]
name = "scroll" name = "scroll"
version = "0.11.0" version = "0.11.0"
@ -3603,7 +3476,7 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"thiserror", "thiserror",
"time 0.3.20", "time",
"url", "url",
"uuid 1.3.0", "uuid 1.3.0",
] ]
@ -4038,7 +3911,7 @@ dependencies = [
"tantivy-query-grammar", "tantivy-query-grammar",
"tempfile", "tempfile",
"thiserror", "thiserror",
"time 0.3.20", "time",
"uuid 1.3.0", "uuid 1.3.0",
"winapi", "winapi",
] ]
@ -4225,7 +4098,7 @@ dependencies = [
"sha2", "sha2",
"tauri-utils", "tauri-utils",
"thiserror", "thiserror",
"time 0.3.20", "time",
"uuid 1.3.0", "uuid 1.3.0",
"walkdir", "walkdir",
] ]
@ -4247,7 +4120,7 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-log" name = "tauri-plugin-log"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=dev#5a6abd3203dc94c38f96d0c4bf7ecbef399f8c25" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=dev#cea1d4f7b54b94354e8100daf804b810c680efd7"
dependencies = [ dependencies = [
"byte-unit", "byte-unit",
"fern", "fern",
@ -4256,13 +4129,29 @@ dependencies = [
"serde_json", "serde_json",
"serde_repr", "serde_repr",
"tauri", "tauri",
"time 0.3.20", "time",
]
[[package]]
name = "tauri-plugin-websocket"
version = "0.1.0"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=dev#cea1d4f7b54b94354e8100daf804b810c680efd7"
dependencies = [
"futures-util",
"log",
"rand 0.8.5",
"serde",
"serde_json",
"tauri",
"thiserror",
"tokio",
"tokio-tungstenite",
] ]
[[package]] [[package]]
name = "tauri-plugin-window-state" name = "tauri-plugin-window-state"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=dev#5a6abd3203dc94c38f96d0c4bf7ecbef399f8c25" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=dev#cea1d4f7b54b94354e8100daf804b810c680efd7"
dependencies = [ dependencies = [
"bincode", "bincode",
"bitflags 2.0.2", "bitflags 2.0.2",
@ -4376,15 +4265,6 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "termcolor"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
dependencies = [
"winapi-util",
]
[[package]] [[package]]
name = "termios" name = "termios"
version = "0.2.2" version = "0.2.2"
@ -4430,17 +4310,6 @@ dependencies = [
"once_cell", "once_cell",
] ]
[[package]]
name = "time"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
dependencies = [
"libc",
"wasi 0.10.0+wasi-snapshot-preview1",
"winapi",
]
[[package]] [[package]]
name = "time" name = "time"
version = "0.3.20" version = "0.3.20"
@ -4558,7 +4427,9 @@ checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd"
dependencies = [ dependencies = [
"futures-util", "futures-util",
"log", "log",
"native-tls",
"tokio", "tokio",
"tokio-native-tls",
"tungstenite", "tungstenite",
] ]
@ -4698,6 +4569,7 @@ dependencies = [
"http", "http",
"httparse", "httparse",
"log", "log",
"native-tls",
"rand 0.8.5", "rand 0.8.5",
"sha1", "sha1",
"thiserror", "thiserror",
@ -4880,12 +4752,6 @@ version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]]
name = "wasi"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]] [[package]]
name = "wasi" name = "wasi"
version = "0.11.0+wasi-snapshot-preview1" version = "0.11.0+wasi-snapshot-preview1"
@ -5120,15 +4986,6 @@ dependencies = [
"windows-targets", "windows-targets",
] ]
[[package]]
name = "windows"
version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25"
dependencies = [
"windows-targets",
]
[[package]] [[package]]
name = "windows-bindgen" name = "windows-bindgen"
version = "0.39.0" version = "0.39.0"

View File

@ -17,6 +17,7 @@ tauri-build = { version = "1.2", features = [] }
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
tauri = { version = "1.2", features = ["dialog-open", "path-all", "protocol-asset", "shell-open", "system-tray", "window-start-dragging"] } tauri = { version = "1.2", features = ["dialog-open", "path-all", "protocol-asset", "shell-open", "system-tray", "window-start-dragging"] }
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev" } tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev" }
tauri-plugin-websocket = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev" }
tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev", features = ["colored"] } tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev", features = ["colored"] }
log = "0.4.17" log = "0.4.17"
notify = "5.1.0" notify = "5.1.0"
@ -40,7 +41,6 @@ fslock = "0.2.1"
tokio = { version = "1.26.0", features = ["full", "sync"] } tokio = { version = "1.26.0", features = ["full", "sync"] }
tokio-tungstenite = "0.18.0" tokio-tungstenite = "0.18.0"
portable-pty = "0.8.0" portable-pty = "0.8.0"
mt_logger = "3.0.2"
bytes = "1.1.0" bytes = "1.1.0"
futures = "0.3" futures = "0.3"
futures-util = "0.3.8" futures-util = "0.3.8"

View File

@ -17,7 +17,6 @@ extern crate log;
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use deltas::Delta; use deltas::Delta;
use git::activity; use git::activity;
use pty::ws_server::pty_serve;
use serde::{ser::SerializeMap, Serialize}; use serde::{ser::SerializeMap, Serialize};
use std::{collections::HashMap, ops::Range, path::Path, sync::Mutex}; use std::{collections::HashMap, ops::Range, path::Path, sync::Mutex};
use storage::Storage; use storage::Storage;
@ -602,6 +601,7 @@ fn main() {
Ok(()) Ok(())
}) })
.plugin(tauri_plugin_websocket::init())
.plugin(tauri_plugin_window_state::Builder::default().build()) .plugin(tauri_plugin_window_state::Builder::default().build())
.plugin({ .plugin({
let targets = [ let targets = [
@ -727,10 +727,7 @@ fn init(app_handle: tauri::AppHandle) -> Result<()> {
} }
} }
tauri::async_runtime::spawn(async move { tauri::async_runtime::spawn(pty::start_server());
println!("starting pty server");
pty_serve().await;
});
watch_events(app_handle, rx); watch_events(app_handle, rx);

View File

@ -1,19 +1,16 @@
use std::env; use anyhow::Result;
use std::fs::OpenOptions;
use std::io::{Read, Write};
use std::path::PathBuf;
use bytes::BytesMut; use bytes::BytesMut;
use futures::{SinkExt, StreamExt}; use futures::{SinkExt, StreamExt};
use mt_logger::*;
use portable_pty::{native_pty_system, CommandBuilder, PtySize}; use portable_pty::{native_pty_system, CommandBuilder, PtySize};
use serde::Deserialize; use serde::Deserialize;
use serde_json::{json, Value}; use serde_json::{json, Value};
use tokio::net::{TcpListener, TcpStream}; use std::env;
use std::io::{Read, Write};
use std::path::PathBuf;
use tokio::net;
use tokio_tungstenite::accept_async; use tokio_tungstenite::accept_async;
use tokio_tungstenite::tungstenite::Message; use tokio_tungstenite::tungstenite::Message;
const PTY_SERVER_ADDRESS: &str = "127.0.0.1:7703";
const TERM: &str = "xterm-256color"; const TERM: &str = "xterm-256color";
#[derive(Deserialize, Debug)] #[derive(Deserialize, Debug)]
@ -30,13 +27,12 @@ struct WindowSize {
pub pixel_height: u16, pub pixel_height: u16,
} }
async fn handle_client(stream: TcpStream) { pub async fn accept_connection(stream: net::TcpStream) -> Result<()> {
let ws_stream = accept_async(stream).await.expect("Failed to accept"); let ws_stream = accept_async(stream).await?;
let (mut ws_sender, mut ws_receiver) = ws_stream.split(); let (mut ws_sender, mut ws_receiver) = ws_stream.split();
let pty_system = native_pty_system(); let pty_system = native_pty_system();
let pty_pair = pty_system let pty_pair = pty_system.openpty(PtySize {
.openpty(PtySize {
rows: 24, rows: 24,
cols: 80, cols: 80,
// Not all systems support pixel_width, pixel_height, // Not all systems support pixel_width, pixel_height,
@ -46,8 +42,7 @@ async fn handle_client(stream: TcpStream) {
// brief example though! // brief example though!
pixel_width: 0, pixel_width: 0,
pixel_height: 0, pixel_height: 0,
}) })?;
.unwrap();
let cmd = if cfg!(target_os = "windows") { let cmd = if cfg!(target_os = "windows") {
// CommandBuilder::new(r"powershell") // CommandBuilder::new(r"powershell")
@ -64,9 +59,9 @@ async fn handle_client(stream: TcpStream) {
cmd cmd
} else { } else {
let user_default_shell = env::var("SHELL").unwrap(); let user_default_shell = env::var("SHELL")?;
mt_log!(Level::Info, "user_default_shell={}", user_default_shell); log::info!("user_default_shell={}", user_default_shell);
let user_scripts = &Value::Null; let user_scripts = &Value::Null;
@ -75,9 +70,9 @@ async fn handle_client(stream: TcpStream) {
"user_scripts": user_scripts "user_scripts": user_scripts
}); });
let scripts = scripts.to_string(); let scripts = scripts.to_string();
let scripts_str = serde_json::to_string(&scripts).unwrap(); let scripts_str = serde_json::to_string(&scripts)?;
mt_log!(Level::Info, "scripts={}", scripts_str); log::info!("scripts={}", scripts_str);
let prompt_command_scripts = format!(r#"echo -en "\033]0; [manter] "{}" \a""#, scripts_str); let prompt_command_scripts = format!(r#"echo -en "\033]0; [manter] "{}" \a""#, scripts_str);
@ -94,9 +89,7 @@ async fn handle_client(stream: TcpStream) {
let mut pty_writer = pty_pair.master.take_writer().unwrap(); let mut pty_writer = pty_pair.master.take_writer().unwrap();
// set to cwd // set to cwd
std::thread::spawn(move || { tauri::async_runtime::spawn(async move {
let rt = tokio::runtime::Runtime::new().unwrap();
rt.block_on(async {
let mut buffer = BytesMut::with_capacity(1024); let mut buffer = BytesMut::with_capacity(1024);
buffer.resize(1024, 0u8); buffer.resize(1024, 0u8);
loop { loop {
@ -106,7 +99,7 @@ async fn handle_client(stream: TcpStream) {
match pty_reader.read(&mut tail) { match pty_reader.read(&mut tail) {
Ok(0) => { Ok(0) => {
// EOF // EOF
mt_log!(Level::Info, "0 bytes read from pty. EOF."); log::info!("0 bytes read from pty. EOF.");
break; break;
} }
Ok(n) => { Ok(n) => {
@ -121,15 +114,14 @@ async fn handle_client(stream: TcpStream) {
ws_sender.send(message).await.unwrap(); ws_sender.send(message).await.unwrap();
} }
Err(e) => { Err(e) => {
mt_log!(Level::Error, "Error reading from pty: {}", e); log::info!("Error reading from pty: {}", e);
mt_log!(Level::Error, "PTY child process may be closed."); log::info!("PTY child process may be closed.");
break; break;
} }
} }
} }
mt_log!(Level::Info, "PTY child process killed."); log::info!("PTY child process killed.");
})
}); });
while let Some(message) = ws_receiver.next().await { while let Some(message) = ws_receiver.next().await {
@ -161,29 +153,26 @@ async fn handle_client(stream: TcpStream) {
// convert bytes to string // convert bytes to string
let command = String::from_utf8_lossy(&msg_bytes[1..]); let command = String::from_utf8_lossy(&msg_bytes[1..]);
let project_path = PathBuf::from(command.as_ref()); let project_path = PathBuf::from(command.as_ref());
println!("Recording to {:?}", project_path);
} }
} }
_ => mt_log!(Level::Error, "Unknown command {}", msg_bytes[0]), _ => log::error!("Unknown command {}", msg_bytes[0]),
} }
} }
Message::Close(_) => { Message::Close(_) => {
mt_log!(Level::Info, "Closing the websocket connection..."); log::info!("Closing the websocket connection...");
mt_log!(Level::Info, "Killing PTY child process..."); log::info!("Killing PTY child process...");
pty_child_process.kill().unwrap(); pty_child_process.kill().unwrap();
mt_log!(Level::Info, "Breakes the loop. This will terminate the ws socket thread and the ws will close"); log::info!("Breakes the loop. This will terminate the ws socket thread and the ws will close");
break; break;
} }
_ => mt_log!(Level::Error, "Unknown received data type"), _ => log::error!("Unknown received data type"),
} }
} }
mt_log!( log::info!("The Websocket was closed and the thread for WS listening will end soon.");
Level::Info, Ok(())
"The Websocket was closed and the thread for WS listening will end soon."
);
} }
// this sort of works, but it's not how we want to do it // this sort of works, but it's not how we want to do it
@ -193,7 +182,7 @@ async fn handle_client(stream: TcpStream) {
// I also can't seem to send data to the pty on opening a new one, so I can't // I also can't seem to send data to the pty on opening a new one, so I can't
// easily initialize the cwd, which is where we want to write this data (under .git) // easily initialize the cwd, which is where we want to write this data (under .git)
// HELP // HELP
fn record_data(data: &Vec<u8>) { fn record_data(_data: &Vec<u8>) {
/* /*
// A little too aggressive: // A little too aggressive:
let mut file = OpenOptions::new() let mut file = OpenOptions::new()
@ -205,23 +194,3 @@ fn record_data(data: &Vec<u8>) {
file.write_all(data).unwrap(); file.write_all(data).unwrap();
*/ */
} }
pub async fn pty_serve() {
let listener = TcpListener::bind(PTY_SERVER_ADDRESS)
.await
.expect("Can't listen");
while let Ok((stream, _)) = listener.accept().await {
let peer = stream
.peer_addr()
.expect("connected streams should have a peer address");
mt_log!(Level::Info, "Peer address: {}", peer);
std::thread::spawn(|| {
let rt = tokio::runtime::Runtime::new().unwrap();
rt.block_on(async {
handle_client(stream).await;
});
});
}
}

View File

@ -1 +1,4 @@
pub mod ws_server; mod connection;
mod server;
pub use server::start_server;

View File

@ -0,0 +1,20 @@
use crate::pty::connection;
use anyhow::{Context, Result};
use tokio::net;
const PTY_WS_ADDRESS: &str = "127.0.0.1:7703";
pub async fn start_server() -> Result<()> {
let listener = net::TcpListener::bind(&PTY_WS_ADDRESS)
.await
.with_context(|| format!("failed to bind to {}", PTY_WS_ADDRESS))?;
while let Ok((stream, _)) = listener.accept().await {
let peer = stream.peer_addr()?;
log::info!("peer address: {}", peer);
tauri::async_runtime::spawn(connection::accept_connection(stream));
}
Ok(())
}

View File

@ -1,48 +0,0 @@
<script lang="ts">
import 'xterm/css/xterm.css';
import ResizeObserver from 'svelte-resize-observer';
import * as terminals from '$lib/terminals';
import { onMount } from 'svelte';
export let session: terminals.TerminalSession;
onMount(() => {
if (session.element) {
session.controller?.open(session.element);
}
});
function handleTermResize() {
terminals.fitSession(session);
}
export const runCommand = (command: string): void => {
if (session.pty) {
command = command + '\r';
console.log('command input', command);
const encodedData = new TextEncoder().encode('\x00' + command);
session.pty.send(encodedData);
}
};
</script>
<!-- Actual terminal -->
<div class="terminal-component flex h-full w-full flex-row">
<div
id="terminal"
class="h-full w-full"
bind:this={session.element}
on:click={focus}
on:keydown={focus}
/>
<ResizeObserver on:resize={handleTermResize} />
</div>
<style>
.terminal-component {
@apply flex h-full w-full flex-row;
}
.terminal-component #terminal {
@apply h-full w-full;
}
</style>

View File

@ -1,165 +0,0 @@
import { writable } from 'svelte/store';
import type { Terminal } from 'xterm';
import type { FitAddon } from 'xterm-addon-fit';
import * as xterm from 'xterm';
import * as fit from 'xterm-addon-fit';
import { CanvasAddon } from 'xterm-addon-canvas';
import { Unicode11Addon } from 'xterm-addon-unicode11';
const PTY_WS_ADDRESS = 'ws://127.0.0.1:7703';
export type TerminalSession = {
projectId: string;
path: string;
element: HTMLElement | null;
controller: Terminal | null;
fit: FitAddon | null;
pty: WebSocket | null;
};
export const terminals = writable<Record<string, TerminalSession>>({});
export const getTerminalSession = (projectId: string, projectPath: string) => {
let object: TerminalSession | undefined;
terminals.subscribe((terms) => {
object = terms[projectId];
});
if (!object) {
object = {
projectId: projectId,
path: projectPath,
element: null,
controller: null,
fit: null,
pty: null
} as TerminalSession;
newTerminalSession(object);
updateStore(object);
}
return object;
};
function updateStore(session: TerminalSession) {
terminals.update((terms) => {
terms[session.projectId] = session;
return terms;
});
}
export const newTerminalSession = async (session: TerminalSession) => {
session.pty = new WebSocket(PTY_WS_ADDRESS);
session.pty.binaryType = 'arraybuffer';
session.pty.onmessage = (evt) => writePtyIncomingToTermInterface(evt, session);
session.pty.onclose = (evt) => handlePtyWsClose(evt, session);
session.pty.onerror = (evt) => handlePtyWsError(evt, session);
session.pty.onopen = async (_evt) => initalizeXterm(session);
};
export function focus(session: TerminalSession) {
console.log('focus');
//session.controller.focus();
}
function initalizeXterm(session: TerminalSession) {
console.log('initalizeXterm');
session.controller = new xterm.Terminal({
cursorBlink: false,
cursorStyle: 'block',
fontSize: 13,
rows: 24,
cols: 80,
allowProposedApi: true
});
session.controller.loadAddon(new Unicode11Addon());
session.controller.unicode.activeVersion = '11';
session.fit = new fit.FitAddon();
session.controller.loadAddon(session.fit);
session.controller.loadAddon(new CanvasAddon());
if (session.element) {
session.controller.open(session.element);
}
fitSession(session);
session.controller.onData((data) => termInterfaceHandleUserInputData(data, session));
sendPathToPty(session);
updateStore(session);
focus(session);
}
const writePtyIncomingToTermInterface = (evt: MessageEvent, session: TerminalSession) => {
if (!(evt.data instanceof ArrayBuffer)) {
alert('unknown data type ' + evt.data);
return;
}
//console.log('terminal input', evt.data);
const dataString: string = arrayBufferToString(evt.data.slice(1));
//console.log('terminal input string', dataString);
if (session.controller) {
session.controller.write(dataString);
}
return dataString;
};
const termInterfaceHandleUserInputData = (data: string, session: TerminalSession) => {
console.log('user input', data);
const encodedData = new TextEncoder().encode('\x00' + data);
if (session.pty) {
session.pty.send(encodedData);
}
};
export const fitSession = (session: TerminalSession) => {
if (session.fit) {
session.fit.fit();
}
sendProposedSizeToPty(session);
};
const sendProposedSizeToPty = (session: TerminalSession) => {
if (session.fit && session.pty) {
const proposedSize = session.fit.proposeDimensions();
if (!proposedSize) return;
const resizeData = {
cols: proposedSize.cols,
rows: proposedSize.rows,
pixel_width: 0,
pixel_height: 0
};
session.pty.send(new TextEncoder().encode('\x01' + JSON.stringify(resizeData)));
}
};
// this is a pretty stupid cheat, but it works on unix systems
const sendPathToPty = (session: TerminalSession) => {
if (!session.pty) return;
// send the path so th pty knows where to record data
const encodedPath = new TextEncoder().encode('\x02' + session.path);
session.pty.send(encodedPath);
// send a command to change the directory and clear the screen
const encodedData = new TextEncoder().encode('\x00' + 'cd ' + session.path + ';clear\n');
session.pty.send(encodedData);
};
const arrayBufferToString = (buf: ArrayBuffer) => {
return String.fromCharCode.apply(null, Array.from(new Uint8Array(buf)));
};
const handlePtyWsClose = (evt: Event, session: TerminalSession) => {
if (session.controller) {
session.controller.write('Terminal session terminated');
session.controller.dispose();
console.log('websocket closes from backend side');
}
};
const handlePtyWsError = (evt: Event, session: TerminalSession) => {
if (typeof console.log == 'function') {
console.log('ws error', evt);
}
};

View File

@ -1,34 +1,44 @@
<script lang="ts"> <script lang="ts">
import { collapsable } from '$lib/paths'; import { collapsable } from '$lib/paths';
import type { LayoutData } from '../$types'; import type { LayoutData } from '../$types';
import Terminal from '$lib/components/Terminal.svelte'; import ResizeObserver from 'svelte-resize-observer';
import * as terminals from '$lib/terminals'; import setupTerminal from './terminal';
import Button from '$lib/components/Button/Button.svelte'; import 'xterm/css/xterm.css';
import type { Project } from '$lib/projects';
import { debounce } from '$lib/utils';
import { Button } from '$lib/components';
export let data: LayoutData; export let data: LayoutData;
const { project, statuses } = data; const { project, statuses } = data;
let terminal: Terminal; type Unpromisify<T> = T extends Promise<infer U> ? U : T;
let terminalSession: terminals.TerminalSession; let term: Unpromisify<ReturnType<typeof setupTerminal>> | undefined;
$: if ($project) { const handleTerminalResize = debounce(() => term?.resize(), 5);
console.log($project); const runCommand = (command: string) => term?.run(command);
terminalSession = terminals.getTerminalSession($project.id, $project.path);
console.log('session', terminalSession);
}
function runCommand(command: string) { const terminal = (target: HTMLElement, params: { project: Project }) => {
terminal.runCommand(command); let setupPromise = setupTerminal(target, params);
} setupPromise.then((terminal) => (term = terminal));
return {
update: (params: { project: Project }) => {
setupPromise.then((term) => term.destroy());
setupPromise = setupTerminal(target, params);
setupPromise.then((terminal) => (term = terminal));
},
destroy: () => setupPromise.then((term) => term.destroy())
};
};
</script> </script>
<!-- Actual terminal -->
<div class="terminal-page flex flex h-full w-full flex-row"> <div class="terminal-page flex flex h-full w-full flex-row">
<div class="main-content h-full w-2/3"> <div class="main-content h-full w-2/3">
{#if terminalSession} <div class="flex h-full w-full flex-row">
<Terminal session={terminalSession} bind:this={terminal} /> <div class="h-full w-full" use:terminal={{ project: $project }} />
{/if} <ResizeObserver on:resize={handleTerminalResize} />
</div> </div>
</div>
<div class="right-panel h-full w-1/3 p-2"> <div class="right-panel h-full w-1/3 p-2">
<h2 class="p-2 pb-4 text-lg font-bold text-zinc-300">Git Status</h2> <h2 class="p-2 pb-4 text-lg font-bold text-zinc-300">Git Status</h2>
{#if $statuses.length == 0} {#if $statuses.length == 0}
@ -51,10 +61,9 @@
{/if} {/if}
<div class="mt-4 p-2 font-bold">Commands</div> <div class="mt-4 p-2 font-bold">Commands</div>
<ul class="px-2 "> <ul class="px-2 ">
<!-- svelte-ignore a11y-click-events-have-key-events --> <Button role="primary" width="full-width" on:click={() => runCommand('git push')}>
<Button role="primary" width="full-width" on:click={() => runCommand('git push')} Push Commit
>Push Commit</Button </Button>
>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -1,25 +0,0 @@
import { readable } from 'svelte/store';
import type { Status } from '$lib/git/statuses';
import { building } from '$app/environment';
import type { PageLoad } from './$types';
export const load: PageLoad = async ({ parent, params }) => {
const statuses = building
? readable<Status[]>([])
: await import('$lib/git/statuses').then((m) => m.default({ projectId: params.projectId }));
const user = building
? {
...readable<undefined>(undefined),
set: () => {
throw new Error('not implemented');
},
delete: () => {
throw new Error('not implemented');
}
}
: await (await import('$lib/users')).default();
return {
user,
statuses
};
};

View File

@ -0,0 +1,116 @@
import type { Project } from '$lib/projects';
import { Terminal } from 'xterm';
import { CanvasAddon } from 'xterm-addon-canvas';
import { WebglAddon } from 'xterm-addon-webgl';
import { FitAddon } from 'xterm-addon-fit';
import { Unicode11Addon } from 'xterm-addon-unicode11';
import WebSocket, { type Message } from 'tauri-plugin-websocket-api';
import { log } from '$lib';
const isWebgl2Supported = (() => {
let isSupported = window.WebGL2RenderingContext ? undefined : false;
return () => {
if (isSupported === undefined) {
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl2', { depth: false, antialias: false });
isSupported = gl instanceof window.WebGL2RenderingContext;
}
return isSupported;
};
})();
const uint8ArrayToNumbers = (array: Uint8Array) => {
const numbers = [];
for (let i = 0; i < array.length; i++) {
numbers.push(array[i]);
}
return numbers;
};
const encodeString = (msg: string): Message => ({
type: 'Binary',
data: uint8ArrayToNumbers(new TextEncoder().encode(msg))
});
const userInputMessage = (data: string) => encodeString(`\x00${data}`);
const resizeMessage = (size: {
rows: number;
cols: number;
pixel_width: number;
pixel_height: number;
}) => encodeString(`\x01${JSON.stringify(size)}`);
const pathMessage = (path: string) => encodeString(`\x02${path}`);
export default (target: HTMLElement, params: { project: Project }) =>
WebSocket.connect('ws://127.0.0.1:7703').then((conn) => {
const { project } = params;
const sendMessage = (message: Message) => {
conn.send(message).catch((e: any) => {
log.error(`failed to send message to terminal: ${e}`);
});
};
const term = new Terminal({
cursorBlink: false,
cursorStyle: 'block',
fontSize: 13,
rows: 24,
cols: 80,
allowProposedApi: true
});
const fitAddon = new FitAddon();
term.loadAddon(new Unicode11Addon());
term.loadAddon(fitAddon);
if (isWebgl2Supported()) {
term.loadAddon(new WebglAddon());
} else {
term.loadAddon(new CanvasAddon());
}
term.unicode.activeVersion = '11';
term.open(target);
fitAddon.fit();
term.focus();
const inputListener = term.onData((data: string) => sendMessage(userInputMessage(data)));
conn.addListener((message) => {
if (message.type === 'Binary') {
term.write(new Uint8Array(message.data));
}
});
sendMessage(pathMessage(project.path));
sendMessage(userInputMessage(`cd ${project.path}; clear\n`));
conn.addListener((message) => {
message.type === 'Close' && term.dispose();
});
return {
resize: () => {
fitAddon.fit();
const size = fitAddon.proposeDimensions();
if (!size) return;
sendMessage(
resizeMessage({
cols: size.cols,
rows: size.rows,
pixel_width: 0,
pixel_height: 0
})
);
},
destroy: () => {
inputListener.dispose();
conn.disconnect();
},
run: (command: string) => {
sendMessage(userInputMessage(`${command}\n`));
}
};
});