diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..7e0dd925 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/README.md b/README.md new file mode 100644 index 00000000..01688326 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Divicards + +Desktop Application for Path of Exile divination cards + +## Platform + +- [Tauri](https://tauri.app/) + +- Vue3 + +## Recommended IDE Setup + +- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) diff --git a/histoire.config.ts b/histoire.config.ts new file mode 100644 index 00000000..dc4bb022 --- /dev/null +++ b/histoire.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'histoire'; +import { HstVue } from '@histoire/plugin-vue'; + +export default defineConfig({ + plugins: [HstVue()], + setupFile: 'histoire.setup.ts', +}); diff --git a/histoire.setup.ts b/histoire.setup.ts new file mode 100644 index 00000000..408f57cc --- /dev/null +++ b/histoire.setup.ts @@ -0,0 +1,6 @@ +import './src/style.css'; + +export function setupVue3({ app }) { + // app.provide('test', 'hello') + // app.use(...) +} diff --git a/index.html b/index.html new file mode 100644 index 00000000..143557b5 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + Vue + TS + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..74c78e0b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5318 @@ +{ + "name": "divicards", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "divicards", + "version": "0.0.0", + "dependencies": { + "@formkit/auto-animate": "^1.0.0-beta.3", + "@tauri-apps/api": "^1.1.0", + "vue": "^3.2.37" + }, + "devDependencies": { + "@histoire/plugin-vue": "^0.11.6", + "@tauri-apps/cli": "^1.1.1", + "@vitejs/plugin-vue": "^3.1.0", + "histoire": "^0.11.6", + "typescript": "^4.6.4", + "vite": "^3.1.0", + "vue-tsc": "^1.0.9" + } + }, + "node_modules/@babel/parser": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.1.2.tgz", + "integrity": "sha512-sO3jdX1s0pam6lIdeSJLMN3DQ6mPEbM4yLvyKkdqtmd/UDwhXA5+AwFJ89rRXm6vTeOXBsE5cAmlos/t7MJdgg==", + "dev": true, + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-json": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.1.tgz", + "integrity": "sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==", + "dev": true, + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/json": "^1.0.0" + } + }, + "node_modules/@codemirror/language": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.3.0.tgz", + "integrity": "sha512-6jOE5DEt6sKD46SXhn3xPbBehn+l48ACcA6Uxs2k+E2YNH9XGF5WdGMTYr2DlggfK4h0QZBK6zEb5S7lkTriWA==", + "dev": true, + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.0.0.tgz", + "integrity": "sha512-nUUXcJW1Xp54kNs+a1ToPLK8MadO0rMTnJB8Zk4Z8gBdrN0kqV7uvUraU/T2yqg+grDNR38Vmy/MrhQN/RgwiA==", + "dev": true, + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.2.tgz", + "integrity": "sha512-Mxff85Hp5va+zuj+H748KbubXjrinX/k28lj43H14T2D0+4kuvEFIEIO7hCEcvBT8ubZyIelt9yGOjj2MWOEQA==", + "dev": true + }, + "node_modules/@codemirror/theme-one-dark": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.0.tgz", + "integrity": "sha512-AiTHtFRu8+vWT9wWUWDM+cog6ZwgivJogB1Tm/g40NIpLwph7AnmxrSzWfvJN5fBVufsuwBxecQCNmdcR5D7Aw==", + "dev": true, + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/highlight": "^1.0.0" + } + }, + "node_modules/@codemirror/view": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.4.1.tgz", + "integrity": "sha512-QdBpD6E5HYx6YFXXhqwrRyQ83w7CxWZnchM4QpWBVkkmV7/oJT8N+yz2KAi2iRaLObc/aOf7C2RCQTO2yswF8A==", + "dev": true, + "dependencies": { + "@codemirror/state": "^6.0.0", + "style-mod": "^4.0.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.12.tgz", + "integrity": "sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz", + "integrity": "sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@formkit/auto-animate": { + "version": "1.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@formkit/auto-animate/-/auto-animate-1.0.0-beta.3.tgz", + "integrity": "sha512-glsi+ytwQpxT/Ctr9GtcIfVr4dO6mJ04mQbNU8MFSdCdqMopHtyfU5Fib0+9lNFIeR0luY4/0NW95/2R5pKsag==" + }, + "node_modules/@histoire/app": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/app/-/app-0.11.6.tgz", + "integrity": "sha512-TtWcMCZTFmHutyx+RcwAXAPc2CxDAgr5mwgB2CtRYwDC3VrM/aRqWHbZtxMjKrCbq08UXLzO1d+3VXy6Y9SvPA==", + "dev": true, + "dependencies": { + "@histoire/controls": "^0.11.6", + "@histoire/shared": "^0.11.6", + "@histoire/vendors": "^0.11.6", + "@types/flexsearch": "^0.7.3", + "flexsearch": "0.7.21", + "shiki": "0.10.1" + } + }, + "node_modules/@histoire/controls": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/controls/-/controls-0.11.6.tgz", + "integrity": "sha512-aJrL6OqoS9D24rBIZal6yLp9GU7XhgAh2MD6PCVjRDd6KQEv9dQbcR/BInH0FpdN5nEwXqui8XC2kbITvpw5Tw==", + "dev": true, + "dependencies": { + "@codemirror/commands": "^6.1.1", + "@codemirror/lang-json": "^6.0.0", + "@codemirror/language": "^6.2.1", + "@codemirror/lint": "^6.0.0", + "@codemirror/state": "^6.1.2", + "@codemirror/theme-one-dark": "^6.1.0", + "@codemirror/view": "^6.3.0", + "@histoire/vendors": "^0.11.6" + } + }, + "node_modules/@histoire/plugin-vue": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/plugin-vue/-/plugin-vue-0.11.6.tgz", + "integrity": "sha512-jS251u/vRmHpv+HcUenLEF+34VkGWlQZDJLFcB6cl9Ev5YyEVQnorOkB6po/lYZ9kcFyO3F/FymGT6izfWhbew==", + "dev": true, + "dependencies": { + "@histoire/controls": "^0.11.6", + "@histoire/shared": "^0.11.6", + "@histoire/vendors": "^0.11.6" + }, + "peerDependencies": { + "histoire": "^0.11.6", + "vue": "^3.2.31" + } + }, + "node_modules/@histoire/shared": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/shared/-/shared-0.11.6.tgz", + "integrity": "sha512-X3jsa3YQ4RrgvKRBde0RuUO3NWgJPZxsJeP0r69qbSQ7yeDQXKgbJ7VvmMg+9XZBCOBIYLPagwO5pezgmVzOzg==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^9.0.13", + "@types/markdown-it": "^12.2.3", + "chokidar": "^3.5.3", + "pathe": "^0.2.0", + "picocolors": "^1.0.0" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0" + } + }, + "node_modules/@histoire/vendors": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/vendors/-/vendors-0.11.6.tgz", + "integrity": "sha512-L2l29V7jAWJdde4Uu+4j5OMLCFzuyF97zli3iM3BxZ8MxcpJXGzGGZesE0wCPGdAINbvRH8pv9GkkveYc5LXeg==", + "dev": true + }, + "node_modules/@lezer/common": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.1.tgz", + "integrity": "sha512-8TR5++Q/F//tpDsLd5zkrvEX5xxeemafEaek7mUp7Y+bI8cKQXdSqhzTOBaOogETcMOVr0pT3BBPXp13477ciw==", + "dev": true + }, + "node_modules/@lezer/highlight": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.2.tgz", + "integrity": "sha512-CAun1WR1glxG9ZdOokTZwXbcwB7PXkIEyZRUMFBVwSrhTcogWq634/ByNImrkUnQhjju6xsIaOBIxvcRJtplXQ==", + "dev": true, + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lezer/json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.0.tgz", + "integrity": "sha512-zbAuUY09RBzCoCA3lJ1+ypKw5WSNvLqGMtasdW6HvVOqZoCpPr8eWrsGnOVWGKGn8Rh21FnrKRVlJXrGAVUqRw==", + "dev": true, + "dependencies": { + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.4.tgz", + "integrity": "sha512-L/52/oMJBFXXx8qBYF4UgktLP2geQ/qn5Fd8+5L/mqlLLCB9+qdKktFAtejd9FdFMaFx6lrP5rmLz4sN3Kplcg==", + "dev": true, + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@tauri-apps/api": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.1.0.tgz", + "integrity": "sha512-n13pIqdPd3KtaMmmAcrU7BTfdMtIlGNnfZD0dNX8L4p8dgmuNyikm6JAA+yCpl9gqq6I8x5cV2Y0muqdgD0cWw==", + "engines": { + "node": ">= 12.22.0", + "npm": ">= 6.6.0", + "yarn": ">= 1.19.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, + "node_modules/@tauri-apps/cli": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.1.1.tgz", + "integrity": "sha512-80kjMEMPBwLYCp0tTKSquy90PHHGGBvZsneNr3B/mWxNsvjzA1C0vOyGJGFrJuT2OmkvrdvuJZ5mch5hL8O1Xg==", + "dev": true, + "bin": { + "tauri": "tauri.js" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + }, + "optionalDependencies": { + "@tauri-apps/cli-darwin-arm64": "1.1.1", + "@tauri-apps/cli-darwin-x64": "1.1.1", + "@tauri-apps/cli-linux-arm-gnueabihf": "1.1.1", + "@tauri-apps/cli-linux-arm64-gnu": "1.1.1", + "@tauri-apps/cli-linux-arm64-musl": "1.1.1", + "@tauri-apps/cli-linux-x64-gnu": "1.1.1", + "@tauri-apps/cli-linux-x64-musl": "1.1.1", + "@tauri-apps/cli-win32-ia32-msvc": "1.1.1", + "@tauri-apps/cli-win32-x64-msvc": "1.1.1" + } + }, + "node_modules/@tauri-apps/cli-darwin-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-qBG11ig525/qf0f5OQxn0ON3hT8YdpTfpa4Y4kVqBJhdW50R5fadPv6tv5Dpl2TS2X7nWh/zg5mEXYoCK3HZ9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.1.1.tgz", + "integrity": "sha512-M3dMsp78OdxisbTwAWGvy3jIb3uqThtQcUYVvqOu9LeEOHyldOBFDSht+6PTBpaJLAHFMQK2rmNxiWgigklJaA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-LYlvdAd73cq+yTi6rw7j/DWIvDpeApwgQkIn+HYsNNeFhyFmABU7tmw+pekK3W3nHAkYAJ69Rl4ZdoxdNGKmHg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-o/hbMQIKuFI7cTNpeQBHD/OCNJOBIci78faKms/t6AstLXx0QJuRHDk477Rg6VVy/I3BBKbyATALbmcTq+ti0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-8Ci4qlDnXIp93XqUrtzFCBDatUzPHpZq7L3bociUbWpvy/bnlzxp1C/C+vwdc4uS1MiAp9v3BFgrU4i0f0Z3QQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-ES4Bkx2JAI8+dDNDJswhLS3yqt+yT/4C6UfGOPIHFxcXUh6fe36eUllrTt+HLRS9xTZbYnteJy7ebq2TqMkaxw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-qrN1WOMAaDl+LE8P8iO0+DYlrWNTc9jIu/CsnVY/LImTn79ZPxEkcVBo0UGeKRI7f10TfvkVmLCBLxTz8QhEyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-vw7VOmrQlywHhFV3pf54udf2FRNj9dg9WP1gL0My55FnB+w+PWS9Ipm871kX5qepmChdnZHKq9fsqE2uTjX//Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-OukxlLLi3AoCN4ABnqCDTiiC7xJGWukAjrKCIx7wFISrLjNfsrnH7/UOzuopfGpZChSe2c+AamVmcpBfVsEmJA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "node_modules/@types/flexsearch": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@types/flexsearch/-/flexsearch-0.7.3.tgz", + "integrity": "sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==", + "dev": true + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "dev": true + }, + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.2.tgz", + "integrity": "sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.9.tgz", + "integrity": "sha512-5Fty3slLet6svXiJw2YxhYeo6c7wFdtILrql5bZymYLM+HbiZtJbryW1YnUEKAP7MO9Mbeh+TNH4Z0HFxHgIqw==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.0.9", + "@vue/reactivity": "^3.2.40", + "muggle-string": "^0.1.0" + } + }, + "node_modules/@volar/source-map": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.9.tgz", + "integrity": "sha512-fazB/vy5ZEJ3yKx4fabJyGNI3CBkdLkfEIRVu6+1P3VixK0Mn+eqyUIkLBrzGYaeFM3GybhCLCvsVdNz0Fu/CQ==", + "dev": true, + "dependencies": { + "muggle-string": "^0.1.0" + } + }, + "node_modules/@volar/typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.9.tgz", + "integrity": "sha512-dVziu+ShQUWuMukM6bvK2v2O446/gG6l1XkTh2vfkccw1IzjfbiP1TWQoNo1ipTfZOtu5YJGYAx+o5HNrGXWfQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.0.9" + } + }, + "node_modules/@volar/vue-language-core": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.9.tgz", + "integrity": "sha512-tofNoR8ShPFenHT1YVMuvoXtXWwoQE+fiXVqSmW0dSKZqEDjWQ3YeXSd0a6aqyKaIbvR7kWWGp34WbpQlwf9Ww==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.0.9", + "@volar/source-map": "1.0.9", + "@vue/compiler-dom": "^3.2.40", + "@vue/compiler-sfc": "^3.2.40", + "@vue/reactivity": "^3.2.40", + "@vue/shared": "^3.2.40", + "minimatch": "^5.1.0", + "vue-template-compiler": "^2.7.10" + } + }, + "node_modules/@volar/vue-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.9.tgz", + "integrity": "sha512-ZLe4y9YNbviACa7uAMCilzxA76gbbSlKfjspXBzk6fCobd8QCIig+VyDYcjANIlm2HhgSCX8jYTzhCKlegh4mw==", + "dev": true, + "dependencies": { + "@volar/typescript": "1.0.9", + "@volar/vue-language-core": "1.0.9" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", + "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", + "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", + "dependencies": { + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", + "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-ssr": "3.2.41", + "@vue/reactivity-transform": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", + "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", + "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", + "dependencies": { + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", + "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", + "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", + "dependencies": { + "@vue/reactivity": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", + "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", + "dependencies": { + "@vue/runtime-core": "3.2.41", + "@vue/shared": "3.2.41", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", + "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", + "dependencies": { + "@vue/compiler-ssr": "3.2.41", + "@vue/shared": "3.2.41" + }, + "peerDependencies": { + "vue": "3.2.41" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", + "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/birpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.1.1.tgz", + "integrity": "sha512-B64AGL4ug2IS2jvV/zjTYDD1L+2gOJTT7Rv+VaK7KVQtQOo/xZbCDsh7g727ipckmU+QJYRqo5RcifVr0Kgcmg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/crelt": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", + "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==", + "dev": true + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/defu": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.0.tgz", + "integrity": "sha512-pOFYRTIhoKujrmbTRhcW5lYQLBXw/dlTwfI8IguF1QCDJOcJzNH1w+YFjxqy6BAuJrClTy6MUE8q+oKJ2FLsIw==", + "dev": true + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diacritics": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz", + "integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.12.tgz", + "integrity": "sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.12", + "@esbuild/linux-loong64": "0.15.12", + "esbuild-android-64": "0.15.12", + "esbuild-android-arm64": "0.15.12", + "esbuild-darwin-64": "0.15.12", + "esbuild-darwin-arm64": "0.15.12", + "esbuild-freebsd-64": "0.15.12", + "esbuild-freebsd-arm64": "0.15.12", + "esbuild-linux-32": "0.15.12", + "esbuild-linux-64": "0.15.12", + "esbuild-linux-arm": "0.15.12", + "esbuild-linux-arm64": "0.15.12", + "esbuild-linux-mips64le": "0.15.12", + "esbuild-linux-ppc64le": "0.15.12", + "esbuild-linux-riscv64": "0.15.12", + "esbuild-linux-s390x": "0.15.12", + "esbuild-netbsd-64": "0.15.12", + "esbuild-openbsd-64": "0.15.12", + "esbuild-sunos-64": "0.15.12", + "esbuild-windows-32": "0.15.12", + "esbuild-windows-64": "0.15.12", + "esbuild-windows-arm64": "0.15.12" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz", + "integrity": "sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz", + "integrity": "sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz", + "integrity": "sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz", + "integrity": "sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz", + "integrity": "sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz", + "integrity": "sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz", + "integrity": "sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz", + "integrity": "sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz", + "integrity": "sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz", + "integrity": "sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz", + "integrity": "sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz", + "integrity": "sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz", + "integrity": "sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz", + "integrity": "sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz", + "integrity": "sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz", + "integrity": "sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz", + "integrity": "sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz", + "integrity": "sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz", + "integrity": "sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz", + "integrity": "sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/flexsearch": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", + "integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==", + "dev": true + }, + "node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/happy-dom": { + "version": "2.55.0", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-2.55.0.tgz", + "integrity": "sha512-CHDMBRau+l/yKQL+ANmexRAC8FRCuYbXRSpu/GbLVyfqkrlBzV7OSNd5C5HZ+pVFtFv1bFJYC5r+xrqgGQuq5w==", + "dev": true, + "dependencies": { + "css.escape": "^1.5.1", + "he": "^1.2.0", + "node-fetch": "^2.x.x", + "sync-request": "^6.1.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/histoire": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/histoire/-/histoire-0.11.6.tgz", + "integrity": "sha512-e8q2xjOoRPjwsePzYolWoOztrqI5hPkE2HxjbMNyRYUI2JdHmwuj6pI+lKoJRckIrwi9hCMuLQCPzzm8Ocdplg==", + "dev": true, + "dependencies": { + "@histoire/app": "^0.11.6", + "@histoire/controls": "^0.11.6", + "@histoire/shared": "^0.11.6", + "@histoire/vendors": "^0.11.6", + "@types/flexsearch": "^0.7.3", + "@types/markdown-it": "^12.2.3", + "birpc": "^0.1.1", + "change-case": "^4.1.2", + "chokidar": "^3.5.3", + "connect": "^3.7.0", + "defu": "^6.0.0", + "diacritics": "^1.3.0", + "flexsearch": "0.7.21", + "fs-extra": "^10.0.1", + "globby": "^13.1.1", + "gray-matter": "^4.0.3", + "happy-dom": "^2.55.0", + "jiti": "^1.16.0", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.6.2", + "markdown-it-attrs": "^4.1.3", + "markdown-it-emoji": "^2.0.0", + "micromatch": "^4.0.5", + "mrmime": "^1.0.0", + "pathe": "^0.2.0", + "picocolors": "^1.0.0", + "sade": "^1.8.1", + "shiki": "0.10.1", + "sirv": "^2.0.2", + "tinypool": "^0.1.2", + "vite-node": "0.23.4", + "vite-plugin-inspect": "^0.7.5" + }, + "bin": { + "histoire": "bin.mjs" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0" + } + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/jiti": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.16.0.tgz", + "integrity": "sha512-L3BJStEf5NAqNuzrpfbN71dp43mYIcBUlCRea/vdyv5dW/AYa1d4bpelko4SHdY3I6eN9Wzyasxirj1/vv5kmg==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kolorist": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.6.0.tgz", + "integrity": "sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==", + "dev": true + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.5.tgz", + "integrity": "sha512-PI1qEHHkTNWT+X6Ip9w+paonfIQ+QZP9sCeMYi47oqhH+EsW8CrJ8J7CzV19QVOj6il8ATGbK2nTECj22ZHGvQ==", + "dev": true, + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/markdown-it-attrs": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.4.tgz", + "integrity": "sha512-53Zfv8PTb6rlVFDlD106xcZHKBSsRZKJ2IW/rTxEJBEVbVaoxaNsmRkG0HXfbHl2SK8kaxZ2QKqdthWy/QBwmA==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "markdown-it": ">= 9.0.0" + } + }, + "node_modules/markdown-it-emoji": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", + "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==", + "dev": true + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mlly": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-0.5.16.tgz", + "integrity": "sha512-LaJ8yuh4v0zEmge/g3c7jjFlhoCPfQn6RCjXgm9A0Qiuochq4BcuOxVfWmdnCoLTlg2MV+hqhOek+W2OhG0Lwg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "pathe": "^0.3.8", + "pkg-types": "^0.3.5", + "ufo": "^0.8.5" + } + }, + "node_modules/mlly/node_modules/pathe": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.3.9.tgz", + "integrity": "sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==", + "dev": true + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/muggle-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", + "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-0.3.6.tgz", + "integrity": "sha512-uQZutkkh6axl1GxDm5/+8ivVdwuJ5pyDGqJeSiIWIUWIqYiK3p9QKozN/Rv6eVvFoeSWkN1uoYeSDBwwBJBtbg==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^0.5.16", + "pathe": "^0.3.9" + } + }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.3.9.tgz", + "integrity": "sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dev": true, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "2.78.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", + "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/shiki": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", + "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "5.2.0" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sirv": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", + "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-mod": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", + "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", + "dev": true + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.1.3.tgz", + "integrity": "sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", + "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/ufo": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-0.8.6.tgz", + "integrity": "sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vite": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.8.tgz", + "integrity": "sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": "~2.78.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "0.23.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.23.4.tgz", + "integrity": "sha512-8VuDGwTWIvwPYcbw8ZycMlwAwqCmqZfLdFrDK75+o+6bWYpede58k6AAXN9ioU+icW82V4u1MzkxLVhhIoQ9xA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "mlly": "^0.5.14", + "pathe": "^0.2.0", + "vite": "^2.9.12 || ^3.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.16.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/vite-node/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vite-node/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/vite-plugin-inspect": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.7.7.tgz", + "integrity": "sha512-2IlnshZuv0RHtUwMBNR8cW//VDLVKfBOG+JY9qqeL2TaNdet5m+Rw/Zxp63vtcX5FNhWO1fYCK1ENRv6PCOevg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.2", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "kolorist": "^1.6.0", + "sirv": "^2.0.2", + "ufo": "^0.8.6" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0" + } + }, + "node_modules/vite-plugin-inspect/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vite-plugin-inspect/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/vscode-oniguruma": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", + "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "node_modules/vue": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", + "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-sfc": "3.2.41", + "@vue/runtime-dom": "3.2.41", + "@vue/server-renderer": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.13", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.13.tgz", + "integrity": "sha512-jYM6TClwDS9YqP48gYrtAtaOhRKkbYmbzE+Q51gX5YDr777n7tNI/IZk4QV4l/PjQPNh/FVa/E92sh/RqKMrog==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.9.tgz", + "integrity": "sha512-vRmHD1K6DmBymNhoHjQy/aYKTRQNLGOu2/ESasChG9Vy113K6CdP0NlhR0bzgFJfv2eFB9Ez/9L5kIciUajBxQ==", + "dev": true, + "dependencies": { + "@volar/vue-language-core": "1.0.9", + "@volar/vue-typescript": "1.0.9" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz", + "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==", + "dev": true + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==" + }, + "@codemirror/commands": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.1.2.tgz", + "integrity": "sha512-sO3jdX1s0pam6lIdeSJLMN3DQ6mPEbM4yLvyKkdqtmd/UDwhXA5+AwFJ89rRXm6vTeOXBsE5cAmlos/t7MJdgg==", + "dev": true, + "requires": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0" + } + }, + "@codemirror/lang-json": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.1.tgz", + "integrity": "sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==", + "dev": true, + "requires": { + "@codemirror/language": "^6.0.0", + "@lezer/json": "^1.0.0" + } + }, + "@codemirror/language": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.3.0.tgz", + "integrity": "sha512-6jOE5DEt6sKD46SXhn3xPbBehn+l48ACcA6Uxs2k+E2YNH9XGF5WdGMTYr2DlggfK4h0QZBK6zEb5S7lkTriWA==", + "dev": true, + "requires": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "@codemirror/lint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.0.0.tgz", + "integrity": "sha512-nUUXcJW1Xp54kNs+a1ToPLK8MadO0rMTnJB8Zk4Z8gBdrN0kqV7uvUraU/T2yqg+grDNR38Vmy/MrhQN/RgwiA==", + "dev": true, + "requires": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "crelt": "^1.0.5" + } + }, + "@codemirror/state": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.2.tgz", + "integrity": "sha512-Mxff85Hp5va+zuj+H748KbubXjrinX/k28lj43H14T2D0+4kuvEFIEIO7hCEcvBT8ubZyIelt9yGOjj2MWOEQA==", + "dev": true + }, + "@codemirror/theme-one-dark": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.0.tgz", + "integrity": "sha512-AiTHtFRu8+vWT9wWUWDM+cog6ZwgivJogB1Tm/g40NIpLwph7AnmxrSzWfvJN5fBVufsuwBxecQCNmdcR5D7Aw==", + "dev": true, + "requires": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/highlight": "^1.0.0" + } + }, + "@codemirror/view": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.4.1.tgz", + "integrity": "sha512-QdBpD6E5HYx6YFXXhqwrRyQ83w7CxWZnchM4QpWBVkkmV7/oJT8N+yz2KAi2iRaLObc/aOf7C2RCQTO2yswF8A==", + "dev": true, + "requires": { + "@codemirror/state": "^6.0.0", + "style-mod": "^4.0.0", + "w3c-keyname": "^2.2.4" + } + }, + "@esbuild/android-arm": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.12.tgz", + "integrity": "sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz", + "integrity": "sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==", + "dev": true, + "optional": true + }, + "@formkit/auto-animate": { + "version": "1.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@formkit/auto-animate/-/auto-animate-1.0.0-beta.3.tgz", + "integrity": "sha512-glsi+ytwQpxT/Ctr9GtcIfVr4dO6mJ04mQbNU8MFSdCdqMopHtyfU5Fib0+9lNFIeR0luY4/0NW95/2R5pKsag==" + }, + "@histoire/app": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/app/-/app-0.11.6.tgz", + "integrity": "sha512-TtWcMCZTFmHutyx+RcwAXAPc2CxDAgr5mwgB2CtRYwDC3VrM/aRqWHbZtxMjKrCbq08UXLzO1d+3VXy6Y9SvPA==", + "dev": true, + "requires": { + "@histoire/controls": "^0.11.6", + "@histoire/shared": "^0.11.6", + "@histoire/vendors": "^0.11.6", + "@types/flexsearch": "^0.7.3", + "flexsearch": "0.7.21", + "shiki": "0.10.1" + } + }, + "@histoire/controls": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/controls/-/controls-0.11.6.tgz", + "integrity": "sha512-aJrL6OqoS9D24rBIZal6yLp9GU7XhgAh2MD6PCVjRDd6KQEv9dQbcR/BInH0FpdN5nEwXqui8XC2kbITvpw5Tw==", + "dev": true, + "requires": { + "@codemirror/commands": "^6.1.1", + "@codemirror/lang-json": "^6.0.0", + "@codemirror/language": "^6.2.1", + "@codemirror/lint": "^6.0.0", + "@codemirror/state": "^6.1.2", + "@codemirror/theme-one-dark": "^6.1.0", + "@codemirror/view": "^6.3.0", + "@histoire/vendors": "^0.11.6" + } + }, + "@histoire/plugin-vue": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/plugin-vue/-/plugin-vue-0.11.6.tgz", + "integrity": "sha512-jS251u/vRmHpv+HcUenLEF+34VkGWlQZDJLFcB6cl9Ev5YyEVQnorOkB6po/lYZ9kcFyO3F/FymGT6izfWhbew==", + "dev": true, + "requires": { + "@histoire/controls": "^0.11.6", + "@histoire/shared": "^0.11.6", + "@histoire/vendors": "^0.11.6" + } + }, + "@histoire/shared": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/shared/-/shared-0.11.6.tgz", + "integrity": "sha512-X3jsa3YQ4RrgvKRBde0RuUO3NWgJPZxsJeP0r69qbSQ7yeDQXKgbJ7VvmMg+9XZBCOBIYLPagwO5pezgmVzOzg==", + "dev": true, + "requires": { + "@types/fs-extra": "^9.0.13", + "@types/markdown-it": "^12.2.3", + "chokidar": "^3.5.3", + "pathe": "^0.2.0", + "picocolors": "^1.0.0" + } + }, + "@histoire/vendors": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@histoire/vendors/-/vendors-0.11.6.tgz", + "integrity": "sha512-L2l29V7jAWJdde4Uu+4j5OMLCFzuyF97zli3iM3BxZ8MxcpJXGzGGZesE0wCPGdAINbvRH8pv9GkkveYc5LXeg==", + "dev": true + }, + "@lezer/common": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.1.tgz", + "integrity": "sha512-8TR5++Q/F//tpDsLd5zkrvEX5xxeemafEaek7mUp7Y+bI8cKQXdSqhzTOBaOogETcMOVr0pT3BBPXp13477ciw==", + "dev": true + }, + "@lezer/highlight": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.2.tgz", + "integrity": "sha512-CAun1WR1glxG9ZdOokTZwXbcwB7PXkIEyZRUMFBVwSrhTcogWq634/ByNImrkUnQhjju6xsIaOBIxvcRJtplXQ==", + "dev": true, + "requires": { + "@lezer/common": "^1.0.0" + } + }, + "@lezer/json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.0.tgz", + "integrity": "sha512-zbAuUY09RBzCoCA3lJ1+ypKw5WSNvLqGMtasdW6HvVOqZoCpPr8eWrsGnOVWGKGn8Rh21FnrKRVlJXrGAVUqRw==", + "dev": true, + "requires": { + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "@lezer/lr": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.4.tgz", + "integrity": "sha512-L/52/oMJBFXXx8qBYF4UgktLP2geQ/qn5Fd8+5L/mqlLLCB9+qdKktFAtejd9FdFMaFx6lrP5rmLz4sN3Kplcg==", + "dev": true, + "requires": { + "@lezer/common": "^1.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@tauri-apps/api": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.1.0.tgz", + "integrity": "sha512-n13pIqdPd3KtaMmmAcrU7BTfdMtIlGNnfZD0dNX8L4p8dgmuNyikm6JAA+yCpl9gqq6I8x5cV2Y0muqdgD0cWw==" + }, + "@tauri-apps/cli": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.1.1.tgz", + "integrity": "sha512-80kjMEMPBwLYCp0tTKSquy90PHHGGBvZsneNr3B/mWxNsvjzA1C0vOyGJGFrJuT2OmkvrdvuJZ5mch5hL8O1Xg==", + "dev": true, + "requires": { + "@tauri-apps/cli-darwin-arm64": "1.1.1", + "@tauri-apps/cli-darwin-x64": "1.1.1", + "@tauri-apps/cli-linux-arm-gnueabihf": "1.1.1", + "@tauri-apps/cli-linux-arm64-gnu": "1.1.1", + "@tauri-apps/cli-linux-arm64-musl": "1.1.1", + "@tauri-apps/cli-linux-x64-gnu": "1.1.1", + "@tauri-apps/cli-linux-x64-musl": "1.1.1", + "@tauri-apps/cli-win32-ia32-msvc": "1.1.1", + "@tauri-apps/cli-win32-x64-msvc": "1.1.1" + } + }, + "@tauri-apps/cli-darwin-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-qBG11ig525/qf0f5OQxn0ON3hT8YdpTfpa4Y4kVqBJhdW50R5fadPv6tv5Dpl2TS2X7nWh/zg5mEXYoCK3HZ9w==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.1.1.tgz", + "integrity": "sha512-M3dMsp78OdxisbTwAWGvy3jIb3uqThtQcUYVvqOu9LeEOHyldOBFDSht+6PTBpaJLAHFMQK2rmNxiWgigklJaA==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-LYlvdAd73cq+yTi6rw7j/DWIvDpeApwgQkIn+HYsNNeFhyFmABU7tmw+pekK3W3nHAkYAJ69Rl4ZdoxdNGKmHg==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-arm64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-o/hbMQIKuFI7cTNpeQBHD/OCNJOBIci78faKms/t6AstLXx0QJuRHDk477Rg6VVy/I3BBKbyATALbmcTq+ti0A==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-arm64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-8Ci4qlDnXIp93XqUrtzFCBDatUzPHpZq7L3bociUbWpvy/bnlzxp1C/C+vwdc4uS1MiAp9v3BFgrU4i0f0Z3QQ==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-x64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-ES4Bkx2JAI8+dDNDJswhLS3yqt+yT/4C6UfGOPIHFxcXUh6fe36eUllrTt+HLRS9xTZbYnteJy7ebq2TqMkaxw==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-linux-x64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-qrN1WOMAaDl+LE8P8iO0+DYlrWNTc9jIu/CsnVY/LImTn79ZPxEkcVBo0UGeKRI7f10TfvkVmLCBLxTz8QhEyA==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-win32-ia32-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-vw7VOmrQlywHhFV3pf54udf2FRNj9dg9WP1gL0My55FnB+w+PWS9Ipm871kX5qepmChdnZHKq9fsqE2uTjX//Q==", + "dev": true, + "optional": true + }, + "@tauri-apps/cli-win32-x64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-OukxlLLi3AoCN4ABnqCDTiiC7xJGWukAjrKCIx7wFISrLjNfsrnH7/UOzuopfGpZChSe2c+AamVmcpBfVsEmJA==", + "dev": true, + "optional": true + }, + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "@types/flexsearch": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@types/flexsearch/-/flexsearch-0.7.3.tgz", + "integrity": "sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==", + "dev": true + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "dev": true + }, + "@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dev": true, + "requires": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "dev": true + }, + "@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@vitejs/plugin-vue": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.2.tgz", + "integrity": "sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==", + "dev": true, + "requires": {} + }, + "@volar/language-core": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.9.tgz", + "integrity": "sha512-5Fty3slLet6svXiJw2YxhYeo6c7wFdtILrql5bZymYLM+HbiZtJbryW1YnUEKAP7MO9Mbeh+TNH4Z0HFxHgIqw==", + "dev": true, + "requires": { + "@volar/source-map": "1.0.9", + "@vue/reactivity": "^3.2.40", + "muggle-string": "^0.1.0" + } + }, + "@volar/source-map": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.9.tgz", + "integrity": "sha512-fazB/vy5ZEJ3yKx4fabJyGNI3CBkdLkfEIRVu6+1P3VixK0Mn+eqyUIkLBrzGYaeFM3GybhCLCvsVdNz0Fu/CQ==", + "dev": true, + "requires": { + "muggle-string": "^0.1.0" + } + }, + "@volar/typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.9.tgz", + "integrity": "sha512-dVziu+ShQUWuMukM6bvK2v2O446/gG6l1XkTh2vfkccw1IzjfbiP1TWQoNo1ipTfZOtu5YJGYAx+o5HNrGXWfQ==", + "dev": true, + "requires": { + "@volar/language-core": "1.0.9" + } + }, + "@volar/vue-language-core": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.9.tgz", + "integrity": "sha512-tofNoR8ShPFenHT1YVMuvoXtXWwoQE+fiXVqSmW0dSKZqEDjWQ3YeXSd0a6aqyKaIbvR7kWWGp34WbpQlwf9Ww==", + "dev": true, + "requires": { + "@volar/language-core": "1.0.9", + "@volar/source-map": "1.0.9", + "@vue/compiler-dom": "^3.2.40", + "@vue/compiler-sfc": "^3.2.40", + "@vue/reactivity": "^3.2.40", + "@vue/shared": "^3.2.40", + "minimatch": "^5.1.0", + "vue-template-compiler": "^2.7.10" + } + }, + "@volar/vue-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.9.tgz", + "integrity": "sha512-ZLe4y9YNbviACa7uAMCilzxA76gbbSlKfjspXBzk6fCobd8QCIig+VyDYcjANIlm2HhgSCX8jYTzhCKlegh4mw==", + "dev": true, + "requires": { + "@volar/typescript": "1.0.9", + "@volar/vue-language-core": "1.0.9" + } + }, + "@vue/compiler-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", + "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", + "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", + "requires": { + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", + "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-ssr": "3.2.41", + "@vue/reactivity-transform": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", + "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", + "requires": { + "@vue/compiler-dom": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/reactivity": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", + "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", + "requires": { + "@vue/shared": "3.2.41" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", + "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", + "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", + "requires": { + "@vue/reactivity": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/runtime-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", + "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", + "requires": { + "@vue/runtime-core": "3.2.41", + "@vue/shared": "3.2.41", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", + "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", + "requires": { + "@vue/compiler-ssr": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/shared": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", + "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "birpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.1.1.tgz", + "integrity": "sha512-B64AGL4ug2IS2jvV/zjTYDD1L+2gOJTT7Rv+VaK7KVQtQOo/xZbCDsh7g727ipckmU+QJYRqo5RcifVr0Kgcmg==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "crelt": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", + "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==", + "dev": true + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "defu": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.0.tgz", + "integrity": "sha512-pOFYRTIhoKujrmbTRhcW5lYQLBXw/dlTwfI8IguF1QCDJOcJzNH1w+YFjxqy6BAuJrClTy6MUE8q+oKJ2FLsIw==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "diacritics": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz", + "integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "esbuild": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.12.tgz", + "integrity": "sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.12", + "@esbuild/linux-loong64": "0.15.12", + "esbuild-android-64": "0.15.12", + "esbuild-android-arm64": "0.15.12", + "esbuild-darwin-64": "0.15.12", + "esbuild-darwin-arm64": "0.15.12", + "esbuild-freebsd-64": "0.15.12", + "esbuild-freebsd-arm64": "0.15.12", + "esbuild-linux-32": "0.15.12", + "esbuild-linux-64": "0.15.12", + "esbuild-linux-arm": "0.15.12", + "esbuild-linux-arm64": "0.15.12", + "esbuild-linux-mips64le": "0.15.12", + "esbuild-linux-ppc64le": "0.15.12", + "esbuild-linux-riscv64": "0.15.12", + "esbuild-linux-s390x": "0.15.12", + "esbuild-netbsd-64": "0.15.12", + "esbuild-openbsd-64": "0.15.12", + "esbuild-sunos-64": "0.15.12", + "esbuild-windows-32": "0.15.12", + "esbuild-windows-64": "0.15.12", + "esbuild-windows-arm64": "0.15.12" + } + }, + "esbuild-android-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz", + "integrity": "sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz", + "integrity": "sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz", + "integrity": "sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz", + "integrity": "sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz", + "integrity": "sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz", + "integrity": "sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz", + "integrity": "sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz", + "integrity": "sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz", + "integrity": "sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz", + "integrity": "sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz", + "integrity": "sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz", + "integrity": "sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz", + "integrity": "sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz", + "integrity": "sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz", + "integrity": "sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz", + "integrity": "sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz", + "integrity": "sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz", + "integrity": "sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz", + "integrity": "sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz", + "integrity": "sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==", + "dev": true, + "optional": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "flexsearch": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", + "integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==", + "dev": true + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "dev": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dev": true, + "requires": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + } + }, + "happy-dom": { + "version": "2.55.0", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-2.55.0.tgz", + "integrity": "sha512-CHDMBRau+l/yKQL+ANmexRAC8FRCuYbXRSpu/GbLVyfqkrlBzV7OSNd5C5HZ+pVFtFv1bFJYC5r+xrqgGQuq5w==", + "dev": true, + "requires": { + "css.escape": "^1.5.1", + "he": "^1.2.0", + "node-fetch": "^2.x.x", + "sync-request": "^6.1.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "requires": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "histoire": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/histoire/-/histoire-0.11.6.tgz", + "integrity": "sha512-e8q2xjOoRPjwsePzYolWoOztrqI5hPkE2HxjbMNyRYUI2JdHmwuj6pI+lKoJRckIrwi9hCMuLQCPzzm8Ocdplg==", + "dev": true, + "requires": { + "@histoire/app": "^0.11.6", + "@histoire/controls": "^0.11.6", + "@histoire/shared": "^0.11.6", + "@histoire/vendors": "^0.11.6", + "@types/flexsearch": "^0.7.3", + "@types/markdown-it": "^12.2.3", + "birpc": "^0.1.1", + "change-case": "^4.1.2", + "chokidar": "^3.5.3", + "connect": "^3.7.0", + "defu": "^6.0.0", + "diacritics": "^1.3.0", + "flexsearch": "0.7.21", + "fs-extra": "^10.0.1", + "globby": "^13.1.1", + "gray-matter": "^4.0.3", + "happy-dom": "^2.55.0", + "jiti": "^1.16.0", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.6.2", + "markdown-it-attrs": "^4.1.3", + "markdown-it-emoji": "^2.0.0", + "micromatch": "^4.0.5", + "mrmime": "^1.0.0", + "pathe": "^0.2.0", + "picocolors": "^1.0.0", + "sade": "^1.8.1", + "shiki": "0.10.1", + "sirv": "^2.0.2", + "tinypool": "^0.1.2", + "vite-node": "0.23.4", + "vite-plugin-inspect": "^0.7.5" + } + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, + "requires": { + "@types/node": "^10.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "jiti": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.16.0.tgz", + "integrity": "sha512-L3BJStEf5NAqNuzrpfbN71dp43mYIcBUlCRea/vdyv5dW/AYa1d4bpelko4SHdY3I6eN9Wzyasxirj1/vv5kmg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "kolorist": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.6.0.tgz", + "integrity": "sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==", + "dev": true + }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + } + } + }, + "markdown-it-anchor": { + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.5.tgz", + "integrity": "sha512-PI1qEHHkTNWT+X6Ip9w+paonfIQ+QZP9sCeMYi47oqhH+EsW8CrJ8J7CzV19QVOj6il8ATGbK2nTECj22ZHGvQ==", + "dev": true, + "requires": {} + }, + "markdown-it-attrs": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.4.tgz", + "integrity": "sha512-53Zfv8PTb6rlVFDlD106xcZHKBSsRZKJ2IW/rTxEJBEVbVaoxaNsmRkG0HXfbHl2SK8kaxZ2QKqdthWy/QBwmA==", + "dev": true, + "requires": {} + }, + "markdown-it-emoji": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", + "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==", + "dev": true + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mlly": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-0.5.16.tgz", + "integrity": "sha512-LaJ8yuh4v0zEmge/g3c7jjFlhoCPfQn6RCjXgm9A0Qiuochq4BcuOxVfWmdnCoLTlg2MV+hqhOek+W2OhG0Lwg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "pathe": "^0.3.8", + "pkg-types": "^0.3.5", + "ufo": "^0.8.5" + }, + "dependencies": { + "pathe": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.3.9.tgz", + "integrity": "sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==", + "dev": true + } + } + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "muggle-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", + "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg-types": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-0.3.6.tgz", + "integrity": "sha512-uQZutkkh6axl1GxDm5/+8ivVdwuJ5pyDGqJeSiIWIUWIqYiK3p9QKozN/Rv6eVvFoeSWkN1uoYeSDBwwBJBtbg==", + "dev": true, + "requires": { + "jsonc-parser": "^3.2.0", + "mlly": "^0.5.16", + "pathe": "^0.3.9" + }, + "dependencies": { + "pathe": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.3.9.tgz", + "integrity": "sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==", + "dev": true + } + } + }, + "postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dev": true, + "requires": { + "asap": "~2.0.6" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rollup": { + "version": "2.78.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", + "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "requires": { + "mri": "^1.1.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + } + }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "shiki": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", + "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", + "dev": true, + "requires": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "5.2.0" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sirv": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", + "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true + }, + "style-mod": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", + "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", + "dev": true + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, + "requires": { + "get-port": "^3.1.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true + } + } + }, + "tinypool": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.1.3.tgz", + "integrity": "sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "totalist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", + "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "ufo": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-0.8.6.tgz", + "integrity": "sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "vite": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.8.tgz", + "integrity": "sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==", + "dev": true, + "requires": { + "esbuild": "^0.15.9", + "fsevents": "~2.3.2", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": "~2.78.0" + } + }, + "vite-node": { + "version": "0.23.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.23.4.tgz", + "integrity": "sha512-8VuDGwTWIvwPYcbw8ZycMlwAwqCmqZfLdFrDK75+o+6bWYpede58k6AAXN9ioU+icW82V4u1MzkxLVhhIoQ9xA==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "mlly": "^0.5.14", + "pathe": "^0.2.0", + "vite": "^2.9.12 || ^3.0.0-0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "vite-plugin-inspect": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.7.7.tgz", + "integrity": "sha512-2IlnshZuv0RHtUwMBNR8cW//VDLVKfBOG+JY9qqeL2TaNdet5m+Rw/Zxp63vtcX5FNhWO1fYCK1ENRv6PCOevg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.2", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "kolorist": "^1.6.0", + "sirv": "^2.0.2", + "ufo": "^0.8.6" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "vscode-oniguruma": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", + "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", + "dev": true + }, + "vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "vue": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", + "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", + "requires": { + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-sfc": "3.2.41", + "@vue/runtime-dom": "3.2.41", + "@vue/server-renderer": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "vue-template-compiler": { + "version": "2.7.13", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.13.tgz", + "integrity": "sha512-jYM6TClwDS9YqP48gYrtAtaOhRKkbYmbzE+Q51gX5YDr777n7tNI/IZk4QV4l/PjQPNh/FVa/E92sh/RqKMrog==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-tsc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.9.tgz", + "integrity": "sha512-vRmHD1K6DmBymNhoHjQy/aYKTRQNLGOu2/ESasChG9Vy113K6CdP0NlhR0bzgFJfv2eFB9Ez/9L5kIciUajBxQ==", + "dev": true, + "requires": { + "@volar/vue-language-core": "1.0.9", + "@volar/vue-typescript": "1.0.9" + } + }, + "w3c-keyname": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz", + "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==", + "dev": true + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "requires": { + "iconv-lite": "0.6.3" + } + }, + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..801af9ee --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "divicards", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview", + "tauri": "tauri", + "story": "histoire" + }, + "dependencies": { + "@formkit/auto-animate": "^1.0.0-beta.3", + "@tauri-apps/api": "^1.1.0", + "vue": "^3.2.37" + }, + "devDependencies": { + "@histoire/plugin-vue": "^0.11.6", + "@tauri-apps/cli": "^1.1.1", + "@vitejs/plugin-vue": "^3.1.0", + "histoire": "^0.11.6", + "typescript": "^4.6.4", + "vite": "^3.1.0", + "vue-tsc": "^1.0.9" + } +} diff --git a/public/chaos.png b/public/chaos.png new file mode 100644 index 00000000..ead2074e Binary files /dev/null and b/public/chaos.png differ diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore new file mode 100644 index 00000000..aba21e24 --- /dev/null +++ b/src-tauri/.gitignore @@ -0,0 +1,3 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 00000000..2a9e0fc5 --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,4455 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aho-corasick" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "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]] +name = "anyhow" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" + +[[package]] +name = "app" +version = "0.1.0" +dependencies = [ + "csv", + "dotenv", + "reqwest", + "reqwest-retry", + "serde", + "serde_json", + "strsim", + "tauri", + "tauri-api", + "tauri-build", + "tokio", + "tracing", + "tracing-subscriber", + "wry", +] + +[[package]] +name = "async-trait" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +dependencies = [ + "atk-sys", + "bitflags", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "attohttpc" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb8867f378f33f78a811a8eb9bf108ad99430d7aad43315dd9319c827ef6247" +dependencies = [ + "flate2", + "http", + "log", + "native-tls", + "openssl", + "serde", + "serde_json", + "serde_urlencoded 0.6.1", + "url", + "wildmatch", +] + +[[package]] +name = "attohttpc" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fcf00bc6d5abb29b5f97e3c61a90b6d3caa12f3faf897d4a3e3607c050a35a7" +dependencies = [ + "flate2", + "http", + "log", + "native-tls", + "serde", + "serde_json", + "serde_urlencoded 0.7.1", + "url", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "lazy_static", + "memchr", + "regex-automata", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + +[[package]] +name = "bytemuck" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" + +[[package]] +name = "bzip2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cairo-rs" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +dependencies = [ + "bitflags", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "cargo_toml" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e72c3ff59e3b7d24630206bb63a73af65da4ed5df1f76ee84dfafb9fee2ba60e" +dependencies = [ + "serde", + "serde_derive", + "toml", +] + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" +dependencies = [ + "byteorder", + "uuid 0.8.2", +] + +[[package]] +name = "cfg-expr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-expr" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +dependencies = [ + "iana-time-zone", + "num-integer", + "num-traits", + "winapi", +] + +[[package]] +name = "cocoa" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +dependencies = [ + "bitflags", + "block", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", + "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]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation", + "foreign-types", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" +dependencies = [ + "autocfg", + "cfg-if 1.0.0", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "csv" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" +dependencies = [ + "bstr", + "csv-core", + "itoa 0.4.8", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctor" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "cxx" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "dbus" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8bcdd56d2e5c4ed26a529c5a9029f5db8290d433497506f958eae3be148eb6" +dependencies = [ + "libc", + "libdbus-sys", + "winapi", +] + +[[package]] +name = "deflate" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf36e65a80337bea855cd4ef9b8401ffce06a7baedf2e85ec467b1ac3f6e82b6" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "dtoa-short" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +dependencies = [ + "dtoa", +] + +[[package]] +name = "either" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "field-offset" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +dependencies = [ + "memoffset", + "rustc_version 0.3.3", +] + +[[package]] +name = "filetime" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "windows-sys 0.42.0", +] + +[[package]] +name = "flate2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" + +[[package]] +name = "futures-executor" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" + +[[package]] +name = "futures-macro" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" + +[[package]] +name = "futures-task" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" + +[[package]] +name = "futures-util" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gcc" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" + +[[package]] +name = "gdk" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +dependencies = [ + "bitflags", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.0.3", +] + +[[package]] +name = "gdkx11-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps 6.0.3", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc184cace1cea8335047a471cc1da80f18acf8a76f3bab2028d499e328948ec7" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "windows 0.32.0", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gio" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", + "winapi", +] + +[[package]] +name = "glib" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" +dependencies = [ + "anyhow", + "heck 0.4.0", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +dependencies = [ + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "globset" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "gobject-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "gtk" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +dependencies = [ + "atk", + "bitflags", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps 6.0.3", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +dependencies = [ + "anyhow", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "h2" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "html5ever" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "http" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.4", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "hyper" +version = "0.14.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 1.0.4", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[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]] +name = "ico" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a4b3331534254a9b64095ae60d3dc2a8225a7a70229cd5888be127cdc1f6804" +dependencies = [ + "byteorder", + "png 0.11.0", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +dependencies = [ + "crossbeam-utils", + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd8e4fb07cf672b1642304e731ef8a6a4c7891d67bb4fd4f5ce58cd6ed86803c" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "infer" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" +dependencies = [ + "cfb", +] + +[[package]] +name = "inflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5f9f47468e9a76a6452271efadc88fe865a82be91fe75e6c0c57b87ccea59d4" +dependencies = [ + "adler32", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "ipnet" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" +dependencies = [ + "serde", + "serde_json", + "treediff", +] + +[[package]] +name = "kuchiki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +dependencies = [ + "cssparser", + "html5ever", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" + +[[package]] +name = "libdbus-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "loom" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +dependencies = [ + "cfg-if 1.0.0", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "mac-notification-sys" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5" +dependencies = [ + "cc", + "dirs-next 2.0.0", + "objc-foundation", + "objc_id", + "time 0.3.15", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +dependencies = [ + "log", + "phf 0.8.0", + "phf_codegen", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "miniz_oxide" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.42.0", +] + +[[package]] +name = "native-tls" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nfd" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e752e3c216bc8a491c5b59fa46da10f1379ae450b19ac688e07f4bb55042e98" +dependencies = [ + "gcc", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "notify-rust" +version = "4.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368e89ea58df747ce88be669ae44e79783c1d30bfd540ad0fc520b3f41f0b3b0" +dependencies = [ + "dbus", + "mac-notification-sys", + "tauri-winrt-notification", +] + +[[package]] +name = "ntapi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "once_cell" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" + +[[package]] +name = "open" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a3100141f1733ea40b53381b0ae3117330735ef22309a190ac57b9576ea716" +dependencies = [ + "pathdiff", + "windows-sys 0.36.1", +] + +[[package]] +name = "openssl" +version = "0.10.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "os_info" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f" +dependencies = [ + "log", + "serde", + "winapi", +] + +[[package]] +name = "os_pipe" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dceb7e43f59c35ee1548045b2c72945a5a3bb6ce6d6f07cdc13dc8f6bc4930a" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pango" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +dependencies = [ + "bitflags", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.42.0", +] + +[[package]] +name = "paste" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pest" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[package]] +name = "plist" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" +dependencies = [ + "base64", + "indexmap", + "line-wrap", + "serde", + "time 0.3.15", + "xml-rs", +] + +[[package]] +name = "png" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925" +dependencies = [ + "bitflags", + "deflate", + "inflate", + "num-iter", +] + +[[package]] +name = "png" +version = "0.17.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c" +dependencies = [ + "bitflags", + "crc32fast", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +dependencies = [ + "once_cell", + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro2" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.8", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" +dependencies = [ + "cty", +] + +[[package]] +name = "rayon" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.8", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "reqwest" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "mime_guess", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded 0.7.1", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "reqwest-middleware" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69539cea4148dce683bec9dc95be3f0397a9bb2c248a49c8296a9d21659a8cdd" +dependencies = [ + "anyhow", + "async-trait", + "futures", + "http", + "reqwest", + "serde", + "task-local-extensions", + "thiserror", +] + +[[package]] +name = "reqwest-retry" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce246a729eaa6aff5e215aee42845bf5fed9893cc6cd51aeeb712f34e04dd9f3" +dependencies = [ + "anyhow", + "async-trait", + "chrono", + "futures", + "http", + "hyper", + "reqwest", + "reqwest-middleware", + "retry-policies", + "task-local-extensions", + "tokio", + "tracing", +] + +[[package]] +name = "retry-policies" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47f9e19b18c6cdd796cc70aea8a9ea5ee7b813be611c6589e3624fcdbfd05f9d" +dependencies = [ + "anyhow", + "chrono", + "rand 0.8.5", +] + +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", +] + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.14", +] + +[[package]] +name = "rustversion" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +dependencies = [ + "lazy_static", + "windows-sys 0.36.1", +] + +[[package]] +name = "scoped-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + +[[package]] +name = "security-framework" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +dependencies = [ + "itoa 1.0.4", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_urlencoded" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" +dependencies = [ + "dtoa", + "itoa 0.4.8", + "serde", + "url", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.4", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared_child" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "socket2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", +] + +[[package]] +name = "soup2-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +dependencies = [ + "bitflags", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "string_cache" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sysinfo" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8834e42be61ae4f6338b216fbb69837c7f33c3d4d3a139fb073735b25af4d9e" +dependencies = [ + "cfg-if 0.1.10", + "doc-comment", + "libc", + "ntapi", + "once_cell", + "rayon", + "winapi", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" +dependencies = [ + "cfg-expr 0.11.0", + "heck 0.4.0", + "pkg-config", + "toml", + "version-compare 0.1.0", +] + +[[package]] +name = "tao" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43336f5d1793543ba96e2a1e75f3a5c7dcd592743be06a0ab3a190f4fcb4b934" +dependencies = [ + "bitflags", + "cairo-rs", + "cc", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys", + "gtk", + "image", + "instant", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "paste", + "png 0.17.6", + "raw-window-handle", + "scopeguard", + "serde", + "unicode-segmentation", + "uuid 1.2.1", + "windows 0.39.0", + "windows-implement", + "x11-dl", +] + +[[package]] +name = "tar" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "task-local-extensions" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4167afbec18ae012de40f8cf1b9bf48420abb390678c34821caa07d924941cc4" +dependencies = [ + "tokio", +] + +[[package]] +name = "tauri" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbf22abd61d95ca9b2becd77f9db4c093892f73e8a07d21d8b0b2bf71a7bcea" +dependencies = [ + "anyhow", + "attohttpc 0.22.0", + "cocoa", + "dirs-next 2.0.0", + "embed_plist", + "encoding_rs", + "flate2", + "futures-util", + "glib", + "glob", + "gtk", + "heck 0.4.0", + "http", + "ignore", + "notify-rust", + "objc", + "once_cell", + "open", + "os_info", + "os_pipe", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "regex", + "rfd", + "semver 1.0.14", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "shared_child", + "state", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils 1.1.1", + "tempfile", + "thiserror", + "tokio", + "url", + "uuid 1.2.1", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-api" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f33b957c35a7d8363a7c819b38849d174b03bb2eeccf089027c59fcf7f6e02e" +dependencies = [ + "anyhow", + "attohttpc 0.16.3", + "dirs-next 1.0.2", + "either", + "flate2", + "http", + "nfd", + "once_cell", + "rand 0.7.3", + "semver 0.11.0", + "serde", + "serde_json", + "serde_repr", + "tar", + "tauri-dialog", + "tauri-utils 0.5.1", + "tempfile", + "thiserror", + "zip", +] + +[[package]] +name = "tauri-build" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0991fb306849897439dbd4a72e4cbed2413e2eb26cb4b3ba220b94edba8b4b88" +dependencies = [ + "anyhow", + "cargo_toml", + "heck 0.4.0", + "json-patch", + "semver 1.0.14", + "serde_json", + "tauri-utils 1.1.1", + "winres", +] + +[[package]] +name = "tauri-codegen" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "356fa253e40ae4d6ff02075011f2f2bb4066f5c9d8c1e16ca6912d7b75903ba6" +dependencies = [ + "base64", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.6", + "proc-macro2", + "quote", + "regex", + "semver 1.0.14", + "serde", + "serde_json", + "sha2", + "tauri-utils 1.1.1", + "thiserror", + "time 0.3.15", + "uuid 1.2.1", + "walkdir", +] + +[[package]] +name = "tauri-dialog" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc74d9511f0aa28b273bf385d1a9283f1c775c2d0ed7a9f325676ba0ef903cea" +dependencies = [ + "tauri-dialog-sys", +] + +[[package]] +name = "tauri-dialog-sys" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d516a2bc034526cb071aa5fb854aa2c55ba13687b3eeae5df83f9c790dcb0ca" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "tauri-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6051fd6940ddb22af452340d03c66a3e2f5d72e0788d4081d91e31528ccdc4d" +dependencies = [ + "heck 0.4.0", + "proc-macro2", + "quote", + "syn", + "tauri-codegen", + "tauri-utils 1.1.1", +] + +[[package]] +name = "tauri-runtime" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49439a5ea47f474572b854972f42eda2e02a470be5ca9609cc83bb66945abe2" +dependencies = [ + "gtk", + "http", + "http-range", + "infer", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils 1.1.1", + "thiserror", + "uuid 1.2.1", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dce920995fd49907aa9bea7249ed1771454f11f7611924c920a1f75fb614d4" +dependencies = [ + "cocoa", + "gtk", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "tauri-runtime", + "tauri-utils 1.1.1", + "uuid 1.2.1", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d8a4b0daeec9b0493cf894a918ba30e6768d6cca1cab757f802a9e78bc0bbfd" +dependencies = [ + "anyhow", + "sysinfo", + "thiserror", +] + +[[package]] +name = "tauri-utils" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8fdae6f29cef959809a3c3afef510c5b715a446a597ab8b791497585363f39" +dependencies = [ + "brotli", + "ctor", + "glob", + "heck 0.4.0", + "html5ever", + "json-patch", + "kuchiki", + "memchr", + "phf 0.10.1", + "proc-macro2", + "quote", + "semver 1.0.14", + "serde", + "serde_json", + "serde_with", + "thiserror", + "url", + "walkdir", + "windows 0.39.0", +] + +[[package]] +name = "tauri-winrt-notification" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" +dependencies = [ + "quick-xml", + "strum", + "windows 0.39.0", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "time" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" +dependencies = [ + "itoa 1.0.4", + "libc", + "num_threads", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +dependencies = [ + "autocfg", + "bytes", + "libc", + "memchr", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "winapi", +] + +[[package]] +name = "tokio-macros" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if 1.0.0", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "treediff" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" +dependencies = [ + "serde_json", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + +[[package]] +name = "uuid" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" +dependencies = [ + "getrandom 0.2.8", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version-compare" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version-compare" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +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]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "web-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup2", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +dependencies = [ + "atk-sys", + "bitflags", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup2-sys", + "system-deps 6.0.3", +] + +[[package]] +name = "webview2-com" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "webview2-com-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "webview2-com-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows 0.39.0", + "windows-bindgen", + "windows-metadata", +] + +[[package]] +name = "wildmatch" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f44b95f62d34113cf558c93511ac93027e03e9c29a60dd0fd70e6e025c7270a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbedf6db9096bc2364adce0ae0aa636dcd89f3c3f2cd67947062aaf0ca2a10ec" +dependencies = [ + "windows_aarch64_msvc 0.32.0", + "windows_i686_gnu 0.32.0", + "windows_i686_msvc 0.32.0", + "windows_x86_64_gnu 0.32.0", + "windows_x86_64_msvc 0.32.0", +] + +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + +[[package]] +name = "windows" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +dependencies = [ + "windows-implement", + "windows_aarch64_msvc 0.39.0", + "windows_i686_gnu 0.39.0", + "windows_i686_msvc 0.39.0", + "windows_x86_64_gnu 0.39.0", + "windows_x86_64_msvc 0.39.0", +] + +[[package]] +name = "windows-bindgen" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +dependencies = [ + "windows-metadata", + "windows-tokens", +] + +[[package]] +name = "windows-implement" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +dependencies = [ + "syn", + "windows-tokens", +] + +[[package]] +name = "windows-metadata" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + +[[package]] +name = "windows-tokens" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + +[[package]] +name = "windows_i686_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + +[[package]] +name = "windows_i686_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + +[[package]] +name = "winres" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" +dependencies = [ + "toml", +] + +[[package]] +name = "wry" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff5c1352b4266fdf92c63479d2f58ab4cd29dc4e78fbc1b62011ed1227926945" +dependencies = [ + "base64", + "block", + "cocoa", + "core-graphics", + "crossbeam-channel", + "gdk", + "gio", + "glib", + "gtk", + "html5ever", + "http", + "kuchiki", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "sha2", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "x11" +version = "2.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7ae97874a928d821b061fce3d1fc52f08071dd53c89a6102bc06efcac3b2908" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c83627bc137605acc00bb399c7b908ef460b621fc37c953db2b09f88c449ea6" +dependencies = [ + "lazy_static", + "libc", + "pkg-config", +] + +[[package]] +name = "xattr" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +dependencies = [ + "libc", +] + +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + +[[package]] +name = "zip" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815" +dependencies = [ + "byteorder", + "bzip2", + "crc32fast", + "flate2", + "thiserror", + "time 0.1.44", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 00000000..fa49d47f --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,44 @@ +[package] +name = "app" +version = "0.1.0" +description = "A Tauri App" +authors = ["you"] +license = "" +repository = "" +default-run = "app" +edition = "2021" +rust-version = "1.57" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +name = "lib" +path = "lib/src/lib.rs" + +[build-dependencies] +tauri-build = { version = "1.1.1", features = [] } + +[dependencies] +serde_json = "1.0" +serde = { version = "1.0", features = ["derive"] } +tauri = { version = "1.1.1", features = ["api-all"] } +wry = "0.21.1" + +tauri-api = "0.7.5" +strsim = "0.10.0" + +csv = "1.1.6" +tokio = { version = "1.2", features = ["full"] } +tracing = { version = "0.1", features = ["log"] } +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +dotenv = "0.15" +reqwest = { version = "0.11", features = ["json"] } +reqwest-retry = "0.1.1" + +[features] +# by default Tauri runs in production mode +# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL +default = [ "custom-protocol" ] +# this feature is used for production builds where `devPath` points to the filesystem +# DO NOT remove this +custom-protocol = [ "tauri/custom-protocol" ] diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 00000000..795b9b7c --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 00000000..6be5e50e Binary files /dev/null and b/src-tauri/icons/128x128.png differ diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png new file mode 100644 index 00000000..e81becee Binary files /dev/null and b/src-tauri/icons/128x128@2x.png differ diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 00000000..a437dd51 Binary files /dev/null and b/src-tauri/icons/32x32.png differ diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 00000000..0ca4f271 Binary files /dev/null and b/src-tauri/icons/Square107x107Logo.png differ diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 00000000..b81f8203 Binary files /dev/null and b/src-tauri/icons/Square142x142Logo.png differ diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 00000000..624c7bfb Binary files /dev/null and b/src-tauri/icons/Square150x150Logo.png differ diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 00000000..c021d2ba Binary files /dev/null and b/src-tauri/icons/Square284x284Logo.png differ diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 00000000..62197002 Binary files /dev/null and b/src-tauri/icons/Square30x30Logo.png differ diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 00000000..f9bc0483 Binary files /dev/null and b/src-tauri/icons/Square310x310Logo.png differ diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 00000000..d5fbfb2a Binary files /dev/null and b/src-tauri/icons/Square44x44Logo.png differ diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 00000000..63440d79 Binary files /dev/null and b/src-tauri/icons/Square71x71Logo.png differ diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png new file mode 100644 index 00000000..f3f705af Binary files /dev/null and b/src-tauri/icons/Square89x89Logo.png differ diff --git a/src-tauri/icons/StoreLogo.png b/src-tauri/icons/StoreLogo.png new file mode 100644 index 00000000..45563882 Binary files /dev/null and b/src-tauri/icons/StoreLogo.png differ diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns new file mode 100644 index 00000000..87f09b40 Binary files /dev/null and b/src-tauri/icons/icon.icns differ diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 00000000..b3636e4b Binary files /dev/null and b/src-tauri/icons/icon.ico differ diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 00000000..e1cd2619 Binary files /dev/null and b/src-tauri/icons/icon.png differ diff --git a/src-tauri/lib/.gitignore b/src-tauri/lib/.gitignore new file mode 100644 index 00000000..4fffb2f8 --- /dev/null +++ b/src-tauri/lib/.gitignore @@ -0,0 +1,2 @@ +/target +/Cargo.lock diff --git a/src-tauri/lib/Cargo.toml b/src-tauri/lib/Cargo.toml new file mode 100644 index 00000000..7c0906d9 --- /dev/null +++ b/src-tauri/lib/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "lib" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +csv = "1.1.6" +serde = { version = "1.0", features = ["derive"] } +tokio = { version = "1.2", features = ["full"] } +tracing = { version = "0.1", features = ["log"] } +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +dotenv = "0.15" +serde_json = "1.0" +reqwest = { version = "0.11", features = ["json"] } +reqwest-retry = "0.1.1" +strsim = "0.10.0" \ No newline at end of file diff --git a/src-tauri/lib/src/config/mod.rs b/src-tauri/lib/src/config/mod.rs new file mode 100644 index 00000000..f41b4160 --- /dev/null +++ b/src-tauri/lib/src/config/mod.rs @@ -0,0 +1,2 @@ +mod total_divines_config; +pub use total_divines_config::TotalDivinesConfig; diff --git a/src-tauri/lib/src/config/total_divines_config.rs b/src-tauri/lib/src/config/total_divines_config.rs new file mode 100644 index 00000000..537d272f --- /dev/null +++ b/src-tauri/lib/src/config/total_divines_config.rs @@ -0,0 +1,49 @@ +use crate::error::Error; +use std::env; + +pub struct TotalDivinesConfig { + pub card_price: f32, + pub divine_price: f32, + pub filename: String, +} + +impl TotalDivinesConfig { + pub fn new(mut args: core::iter::Skip) -> Result { + let card_price: f32 = match args.next() { + Some(arg) => match arg.parse() { + Ok(arg) => arg, + Err(err) => return Err(Error::ParseError("Problem with card price parsing", err)), + }, + None => { + return Err(Error::ConfigError( + "Didnt get a chaos price(first argument)", + )) + } + }; + + let divine_price: f32 = match args.next() { + Some(arg) => match arg.parse() { + Ok(arg) => arg, + Err(err) => { + return Err(Error::ParseError("Problem with divine price parsing", err)) + } + }, + None => { + return Err(Error::ConfigError( + "Didnt get a divine price(second argument)", + )) + } + }; + + let filename = match args.next() { + Some(arg) => arg, + None => return Err(Error::ConfigError("Didnt get a file name(third argument)")), + }; + + Ok(TotalDivinesConfig { + card_price, + divine_price, + filename, + }) + } +} diff --git a/src-tauri/lib/src/csvm.rs b/src-tauri/lib/src/csvm.rs new file mode 100644 index 00000000..802f27e8 --- /dev/null +++ b/src-tauri/lib/src/csvm.rs @@ -0,0 +1,103 @@ +/* +pub fn write_sold(initial_path: &str, after_path: &str) -> Result<(), Error> { + let initial_vec = get_records_from_csv(initial_path, None)?; + let after_vec = get_records_from_csv(after_path, None)?; + write_to_csv(&initial_vec, "output_initial.csv")?; + + let mut initial_map = HashMap::::new(); + let mut after_map = HashMap::::new(); + + for record in initial_vec { + initial_map.insert(record.name.clone(), record); + } + + for record in after_vec { + after_map.insert(record.name.clone(), record); + } + + let mut sold_vec = Vec::::new(); + for (name, record) in initial_map { + let after_record = after_map.entry(name.clone()).or_insert(Record::default()); + after_record.name = record.name.clone(); + after_record.calculated = record.calculated; + + let calculated = match record.calculated { + Some(price) => price, + None => match &name { + _ if record::is_legacy_card(&name) => 0.0, + _ => return Err(Error::NoPriceError(name.to_string())), + }, + }; + + let stack_size = record.stack_size - after_record.stack_size; + let total = calculated * stack_size as f32; + + let sold_record = Record { + name: name.clone(), + calculated: Some(calculated), + stack_size, + total: Some(total), + }; + + sold_vec.push(sold_record); + } + + let nullified_after_vector = after_map.values().cloned().collect::>(); + + write_to_csv(&nullified_after_vector, "output_after.csv")?; + write_to_csv(&sold_vec, "output_sold.csv")?; + + Ok(()) +} +*/ + +/* +pub fn write_add_sold_to_final(final_path: &str, sold_path: &str) -> Result<(), Error> { + let final_vec = get_records_from_csv(final_path, None)?; + let sold_vec = get_records_from_csv(sold_path, None)?; + + let mut final_map = HashMap::::new(); + for record in final_vec { + final_map.insert(record.name.clone(), record); + } + + let mut sold_map = HashMap::::new(); + for record in sold_vec { + sold_map.insert(record.name.clone(), record); + } + + let mut summarized_vec: Vec = vec![]; + for (name, record) in sold_map { + let mut final_record = final_map.entry(name.clone()).or_insert(Record::default()); + final_record.name = name.clone(); + final_record.calculated = record.calculated; + + let calculated = record.calculated; + let stack_size = record.stack_size + final_record.stack_size; + let total = calculated * stack_size as f32; + let summarized_record = Record { + stack_size, + name, + calculated, + total, + }; + + summarized_vec.push(summarized_record); + } + + write_to_csv(&summarized_vec, "output_final_plus_sold.csv")?; + + Ok(()) +}*/ + +/* +pub fn add_sold_diff_in_one_function( + initial_path: &str, + after_path: &str, + final_path: &str, +) -> Result<(), Error> { + write_sold(initial_path, after_path)?; + write_add_sold_to_final(final_path, "output_sold.csv")?; + + Ok(()) +}*/ diff --git a/src-tauri/lib/src/dev.rs b/src-tauri/lib/src/dev.rs new file mode 100644 index 00000000..634a35bd --- /dev/null +++ b/src-tauri/lib/src/dev.rs @@ -0,0 +1,15 @@ +use tracing_subscriber::fmt::format::FmtSpan; + +pub fn init_tracing() { + let log_filter = match std::env::var("RUST_LOG") { + Ok(filter) => filter, + Err(_) => String::from("app=debug,tauri=debug,lib=debug"), + }; + + println!("tracing mode: {}", log_filter); + + tracing_subscriber::fmt() + .with_env_filter(log_filter) + .with_span_events(FmtSpan::CLOSE) + .init(); +} diff --git a/src-tauri/lib/src/error.rs b/src-tauri/lib/src/error.rs new file mode 100644 index 00000000..e11a61b3 --- /dev/null +++ b/src-tauri/lib/src/error.rs @@ -0,0 +1,71 @@ +use serde::Serialize; + +#[derive(Debug)] +pub enum Error { + ConfigurationError, + ConfigError(&'static str), + CSVError(csv::Error), + ParseError(&'static str, std::num::ParseFloatError), + IOError(&'static str, std::io::Error), + NoPriceError(String), + NotDivinationCard(String), + FromUtf8Error(std::string::FromUtf8Error), + ReqwestError(reqwest::Error), +} + +impl std::fmt::Display for Error { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match &*self { + Error::ConfigurationError => write!(f, "Configuration error"), + Error::ConfigError(err_str) => write!(f, "No argument: {}. Example usage: ./divcards 5.5 200 data.csv\nWhere 5.5 - minimal card price, 200 - divine price in chaos, data.csv - path to data file", err_str), + Error::ParseError(err_str, _) => { + write!(f, "Parse error: {}. ", err_str) + } + Error::CSVError(ref err) => write!(f, "{}", err), + Error::IOError(err_str, ref err) => write!(f, "{} : {}", err_str, err), + Error::NoPriceError(name) => write!(f, "Divination card has no price. Card name: {}", name), + Error::NotDivinationCard(name) => write!(f, "This item is probably not a divination card: {}", name), + Error::FromUtf8Error(err) => write!(f, "{}", err), + Error::ReqwestError(err) => write!(f, "{}", err), + } + } +} + +impl Serialize for Error { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + serializer.serialize_str(self.to_string().as_ref()) + } +} + +// impl From for Error { +// fn from(err: std::num::ParseIntError) -> Self { +// Error::Parse(err) +// } +// } + +impl From for Error { + fn from(err: std::string::FromUtf8Error) -> Self { + Error::FromUtf8Error(err) + } +} + +impl From for Error { + fn from(err: csv::Error) -> Self { + Error::CSVError(err) + } +} + +impl From for Error { + fn from(err: reqwest::Error) -> Self { + Error::ReqwestError(err) + } +} + +impl From for Error { + fn from(err: std::io::Error) -> Self { + Error::IOError("", err) + } +} diff --git a/src-tauri/lib/src/lib.rs b/src-tauri/lib/src/lib.rs new file mode 100644 index 00000000..930b910e --- /dev/null +++ b/src-tauri/lib/src/lib.rs @@ -0,0 +1,36 @@ +#![allow(dead_code)] + +pub fn add(left: usize, right: usize) -> usize { + left + right +} + +pub mod config; +pub mod dev; +pub mod error; +pub mod types; + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + let result = add(2, 2); + assert_eq!(result, 4); + + // let mut map = std::collections::HashMap::<&str, i32>::new(); + // map.insert("The Doctor", 4000); + // map.insert("The Mayor", 50); + // let max = map + // .iter() + // .max_by(|a, b| { + // println!("a: {a:?} , b: {b:?}"); + // a.1.cmp(&b.1) + // }) + // .map(|(k, _v)| k); + // println!("max: {:?}", max); + + let a = strsim::normalized_damerau_levenshtein("The Hook", "The Hook"); + println!("{a}"); + } +} diff --git a/src-tauri/lib/src/types/card.rs b/src-tauri/lib/src/types/card.rs new file mode 100644 index 00000000..1a0d0efc --- /dev/null +++ b/src-tauri/lib/src/types/card.rs @@ -0,0 +1,10 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Card { + pub name: String, + // #[serde(rename = "chaosValue")] + // #[serde(rename(serialize = "calculated", deserialize = "chaosValue"))] + // pub calculated: f32, +} diff --git a/src-tauri/lib/src/types/mod.rs b/src-tauri/lib/src/types/mod.rs new file mode 100644 index 00000000..60b34092 --- /dev/null +++ b/src-tauri/lib/src/types/mod.rs @@ -0,0 +1,3 @@ +pub mod card; +pub mod record; +pub mod weighted_record; diff --git a/src-tauri/lib/src/types/record/csv/file.rs b/src-tauri/lib/src/types/record/csv/file.rs new file mode 100644 index 00000000..4c075856 --- /dev/null +++ b/src-tauri/lib/src/types/record/csv/file.rs @@ -0,0 +1,145 @@ +use std::{collections::HashMap, fs::File}; + +// use csv::Reader; +use tracing::instrument; + +use crate::error::Error; + +use crate::types::record::{self, Record}; + +#[instrument] +pub fn read(path: &str, minimum_card_price: Option) -> Result, Error> { + let mut reader: csv::Reader = match csv::Reader::from_path(path) { + Ok(r) => r, + Err(err) => { + tracing::event!(tracing::Level::ERROR, "{:?}", err); + return Err(Error::CSVError(err)); + } + }; + + let price = minimum_card_price; + + let mut records: Vec = vec![]; + for record in reader.deserialize::() { + let record = match record { + Ok(r) => r, + Err(err) => return Err(Error::CSVError(err)), + }; + + if record.calculated.unwrap_or_default() >= price.unwrap_or_default() { + records.push(record); + } + } + + Ok(records) +} + +pub fn write(records: &Vec, path: &str) -> Result<(), Error> { + let mut writer = match csv::Writer::from_path(path) { + Ok(writer) => writer, + Err(err) => { + tracing::event!(tracing::Level::ERROR, "{:?}", err); + return Err(Error::CSVError(err)); + } + }; + + for record in records { + match writer.serialize(record) { + Ok(r) => r, + Err(err) => { + tracing::event!(tracing::Level::ERROR, "{:?}", err); + return Err(Error::CSVError(err)); + } + } + } + + Ok(()) +} + +// / Merges correct csv divination card files into one. +// / # Example usage: +// / +// / ```rust +// / merge_n_files( +// / starter_map, +// / &[ +// / "ready_files/5k.csv", +// / "ready_files/6066.csv", +// / "ready_files/40k.csv", +// / ], +// / "ready_files/output.csv", +// / )?; +// / ``` +fn merge_n_files( + starter_map: HashMap<&'static str, Record>, + file_paths: &[&str], + output_path: &str, +) -> Result<(), Error> { + let mut vectors: Vec> = vec![]; + let mut maps: Vec> = vec![]; + for path in file_paths { + let v: Vec = read(path, None)?; + vectors.push(v); + } + + for vector in vectors { + let map: HashMap<&str, Record> = record::vec_to_map(vector, starter_map.clone())?; + maps.push(map); + } + + let mut new_vec: Vec = vec![]; + for (name, record) in starter_map { + let mut same_name_records: Vec<&Record> = vec![]; + for map in &maps { + let record: &Record = map.get(name).unwrap(); + same_name_records.push(record); + } + + let mut new_record = Record::default(); + new_record.name = name.to_string(); + + let calculated = match record.calculated { + Some(price) => price, + None => match name { + _ if record::is_legacy_card(name) => 0.0, + _ => return Err(Error::NoPriceError(name.to_string())), + }, + }; + + new_record.calculated = Some(calculated); + + new_record.stack_size = same_name_records.iter().map(|r| r.stack_size).sum(); + new_record.total = Some(new_record.stack_size as f32 * calculated); + + new_vec.push(new_record); + } + + write(&new_vec, output_path)?; + + Ok(()) +} + +pub fn write_empty_table(output_path: &str) -> Result<(), Error> { + let mut records: Vec = vec![]; + for name in record::NAMES { + let mut new_record = Record::default(); + new_record.name = name.to_string(); + + records.push(new_record); + } + + write(&records, output_path)?; + + Ok(()) +} + +pub fn read_polish_write( + input_path: &str, + output_path: &str, + starter_map: HashMap<&'static str, Record>, +) -> Result<(), Error> { + let rec = read(input_path, None)?; + let rec = record::polish_records(rec, starter_map)?; + write(&rec, output_path)?; + Ok(()) +} diff --git a/src-tauri/lib/src/types/record/csv/mod.rs b/src-tauri/lib/src/types/record/csv/mod.rs new file mode 100644 index 00000000..81265331 --- /dev/null +++ b/src-tauri/lib/src/types/record/csv/mod.rs @@ -0,0 +1,10 @@ +pub mod file; +pub mod string; + +// use crate::error::Error; + +// pub fn calc_divines_from_csv(config: TotalDivinesConfig) -> Result { +// let records = record::csv::read(&config.filename, Some(config.card_price))?; +// let divines = record::total_price_divine(&records, config.divine_price); +// Ok(divines) +// } diff --git a/src-tauri/lib/src/types/record/csv/string.rs b/src-tauri/lib/src/types/record/csv/string.rs new file mode 100644 index 00000000..c4c99a0a --- /dev/null +++ b/src-tauri/lib/src/types/record/csv/string.rs @@ -0,0 +1,191 @@ +use std::collections::HashMap; +use std::vec; + +use csv::Reader; +use tracing::instrument; +// use tracing::instrument; + +use crate::error::Error; + +use crate::types::record::{self, Record}; + +pub fn read(content_string: &str, minimum_card_price: Option) -> Result, Error> { + let mut reader = Reader::from_reader(content_string.as_bytes()); + + let mut records: Vec = vec![]; + for record in reader.deserialize::() { + let record = record?; + + if record.calculated.unwrap_or_default() >= minimum_card_price.unwrap_or_default() { + records.push(record); + } + } + Ok(records) +} + +pub fn write(records: &Vec) -> Result { + let mut writer = csv::Writer::from_writer(vec![]); + for record in records { + writer.serialize(record)?; + } + let content_string = String::from_utf8(writer.into_inner().expect("Error with csv serialize"))?; + Ok(content_string) +} + +#[instrument] +pub fn read_polish_write( + content_string: &str, + map: HashMap<&'static str, Record>, + minimum_card_price: Option, +) -> Result { + let records = read(content_string, minimum_card_price)?; + let records = record::polish_records(records, map)?; + let output_content_string = write(&records)?; + Ok(output_content_string) +} + +pub fn total_chaos(content_string: &str, minimum_card_price: Option) -> Result { + let records = read(content_string, minimum_card_price)?; + Ok(record::total_price_chaos(&records)) +} + +pub fn merge( + starter_map: HashMap<&'static str, Record>, + csv_file_strings: &[&str], +) -> Result { + let mut vectors: Vec> = vec![]; + let mut maps: Vec> = vec![]; + + for content_string in csv_file_strings { + let v = read(content_string, None)?; + vectors.push(v); + } + + for vector in vectors { + let map: HashMap<&str, Record> = record::vec_to_map(vector, starter_map.clone())?; + maps.push(map); + } + + let mut new_vec: Vec = vec![]; + for (name, record) in starter_map { + let mut same_name_records: Vec<&Record> = vec![]; + for map in &maps { + let record: &Record = map.get(name).unwrap(); + same_name_records.push(record); + } + + let mut new_record = Record::default(); + new_record.name = name.to_string(); + + let calculated = match record.calculated { + Some(price) => price, + None => match name { + _ if record::is_legacy_card(name) => 0.0, + _ => return Err(Error::NoPriceError(name.to_string())), + }, + }; + + new_record.calculated = Some(calculated); + + new_record.stack_size = same_name_records.iter().map(|r| r.stack_size).sum(); + new_record.total = Some(new_record.stack_size as f32 * calculated); + + new_vec.push(new_record); + } + + Ok(write(&new_vec)?) +} + +mod test { + #![allow(unused_variables)] + + use std::collections::HashMap; + + use crate::types::record::Record; + + fn merge() { + let doctor_price = 4000.0; + let nurse_price = 400.0; + let dragonheart_price = 50.0; + + let mut map = HashMap::<&'static str, Record>::new(); + map.insert( + "The Doctor", + Record { + name: "The Doctor".into(), + calculated: Some(doctor_price), + ..Default::default() + }, + ); + + map.insert( + "The Nurse", + Record { + name: "The Nurse".into(), + calculated: Some(nurse_price), + ..Default::default() + }, + ); + + map.insert( + "The Dragon's Heart", + Record { + name: "The Dragon's Heart".into(), + calculated: Some(dragonheart_price), + ..Default::default() + }, + ); + + let doctor = Record { + stack_size: 1, + name: "The Doctor".into(), + calculated: Some(doctor_price), + total: Some(doctor_price), + }; + + let nurse = Record { + stack_size: 2, + name: "The Nurse".into(), + calculated: Some(nurse_price), + total: Some(2 as f32 * nurse_price), + }; + + let vec1: Vec = vec![doctor.clone(), nurse.clone()]; + + let doctor2 = Record { + stack_size: 2, + name: "The Doctor".into(), + calculated: Some(doctor_price), + total: Some(2 as f32 * doctor_price), + }; + + let dragonsheart = Record { + stack_size: 1, + name: "The Dragon's Heart".into(), + calculated: Some(dragonheart_price), + total: Some(dragonheart_price), + }; + + let vec2: Vec = vec![doctor2, dragonsheart]; + + todo!(); + } +} + +// pub fn read_csv_from_string(data: &str) -> Result { +// let mut reader = Reader::from_reader(data.as_bytes()); + +// let mut writer = csv::Writer::from_writer(vec![]); +// let mut records: Vec = vec![]; +// for record in reader.deserialize::() { +// let record = record?; +// writer.serialize(record.clone())?; +// records.push(record); +// } + +// // let serialized = serde_json::to_string(&records)?; + +// let data = String::from_utf8(writer.into_inner().unwrap())?; + +// Ok(data) +// } diff --git a/src-tauri/lib/src/types/record/initial_data.rs b/src-tauri/lib/src/types/record/initial_data.rs new file mode 100644 index 00000000..b8f21490 --- /dev/null +++ b/src-tauri/lib/src/types/record/initial_data.rs @@ -0,0 +1,956 @@ +use serde::Deserialize; + +use crate::error::Error; + +use super::{NinjaRecord, Record}; +use std::collections::HashMap; + +pub const LEGACY_CARDS: [&'static str; 15] = [ + "Friendship", + "Vile Power", + "Squandered Prosperity", + "Blessing of God", + "The Devastator", + "The Iron Bard", + "Luck of the Vaal", + "A Note in the Wind", + "The Valley of Steel Boxes", + "Akil's Prophecy", + "Birth of the Three", + "The Mayor", + "The Transformation", + "The Mad King", + "Treasures of the Vaal", +]; + +pub const NAMES: [&'static str; 423] = [ + "A Dab of Ink", + "A Familiar Call", + "A Fate Worse Than Death", + "A Modest Request", + "A Mother's Parting Gift", + "A Sea of Blue", + "A Stone Perfected", + "Abandoned Wealth", + "Acclimatisation", + "Alluring Bounty", + "Alone in the Darkness", + "Altered Perception", + "Ambitious Obsession", + "Anarchy's Price", + "Arrogance of the Vaal", + "Assassin's Favour", + "Astral Protection", + "Atziri's Arsenal", + "Audacity", + "Azure Rage", + "Azyran's Reward", + "Baited Expectations", + "Beauty Through Death", + "Bijoux", + "Birth of the Three", + "Blind Venture", + "Boon of Justice", + "Boon of the First Ones", + "Boundless Realms", + "Bowyer's Dream", + "Broken Promises", + "Broken Truce", + "Brotherhood in Exile", + "Brother's Stash", + "Brush, Paint and Palette", + "Buried Treasure", + "Burning Blood", + "Call to the First Ones", + "Cameria's Cut", + "Cartographer's Delight", + "Chaotic Disposition", + "Chasing Risk", + "Checkmate", + "Choking Guilt", + "Costly Curio", + "Council of Cats", + "Coveted Possession", + "Cursed Words", + "Dark Dreams", + "Dark Temptation", + "Darker Half", + "Deadly Joy", + "Death", + "Deathly Designs", + "Dementophobia", + "Demigod's Wager", + "Desecrated Virtue", + "Desperate Crusade", + "Destined to Crumble", + "Dialla's Subjugation", + "Disdain", + "Divine Justice", + "Doedre's Madness", + "Doryani's Epiphany", + "Draped in Dreams", + "Duality", + "Dying Anguish", + "Dying Light", + "Earth Drinker", + "Echoes of Love", + "Emperor of Purity", + "Emperor's Luck", + "Endless Night", + "Etched in Blood", + "Eternal Bonds", + "Fateful Meeting", + "Forbidden Power", + "From Bone to Ashes", + "Further Invention", + "Gemcutter's Mercy", + "Gemcutter's Promise", + "Gift of Asenath", + "Gift of the Gemling Queen", + "Glimmer of Hope", + "Grave Knowledge", + "Guardian's Challenge", + "Harmony of Souls", + "Haunting Shadows", + "Her Mask", + "Heterochromia", + "Home", + "Hope", + "House of Mirrors", + "Hubris", + "Humility", + "Hunter's Resolve", + "Hunter's Reward", + "Immortal Resolve", + "Imperfect Memories", + "Imperial Legacy", + "Jack in the Box", + "Judging Voices", + "Justified Ambition", + "Keeper's Corruption", + "Lachrymal Necrosis", + "Lantador's Lost Love", + "Last Hope", + "Left to Fate", + "Lethean Temptation", + "Light and Truth", + "Lingering Remnants", + "Lost Worlds", + "Love Through Ice", + "Loyalty", + "Lucky Connections", + "Lucky Deck", + "Luminous Trove", + "Lysah's Respite", + "Magnum Opus", + "Mawr Blaidd", + "Merciless Armament", + "Might is Right", + "Misery in Darkness", + "Mitts", + "Monochrome", + "More is Never Enough", + "No Traces", + "Nook's Crown", + "Parasitic Passengers", + "Peaceful Moments", + "Perfection", + "Prejudice", + "Pride Before the Fall", + "Pride of the First Ones", + "Prometheus' Armoury", + "Prosperity", + "Rain of Chaos", + "Rain Tempter", + "Rats", + "Rebirth", + "Rebirth and Renewal", + "Reckless Ambition", + "Remembrance", + "Sambodhi's Vow", + "Sambodhi's Wisdom", + "Scholar of the Seas", + "Seven Years Bad Luck", + "Shard of Fate", + "Silence and Frost", + "Society's Remorse", + "Something Dark", + "Struck by Lightning", + "Succor of the Sinless", + "Terrible Secret of Space", + "The Academic", + "The Admirer", + "The Adventuring Spirit", + "The Aesthete", + "The Apothecary", + "The Archmage's Right Hand", + "The Arena Champion", + "The Army of Blood", + "The Artist", + "The Aspirant", + "The Astromancer", + "The Avenger", + "The Awakened", + "The Bargain", + "The Battle Born", + "The Bear Woman", + "The Beast", + "The Betrayal", + "The Bitter Blossom", + "The Blazing Fire", + "The Blessing of Moosh", + "The Body", + "The Bones", + "The Brawny Battle Mage", + "The Breach", + "The Brittle Emperor", + "The Cache", + "The Cacophony", + "The Calling", + "The Card Sharp", + "The Carrion Crow", + "The Cartographer", + "The Cataclysm", + "The Catalyst", + "The Catch", + "The Celestial Justicar", + "The Celestial Stone", + "The Chains that Bind", + "The Cheater", + "The Chosen", + "The Coming Storm", + "The Conduit", + "The Craving", + "The Cursed King", + "The Damned", + "The Dapper Prodigy", + "The Dark Mage", + "The Darkest Dream", + "The Deal", + "The Deceiver", + "The Deep Ones", + "The Demon", + "The Demoness", + "The Destination", + "The Doctor", + "The Doppelganger", + "The Dragon", + "The Dragon's Heart", + "The Dreamer", + "The Dreamland", + "The Drunken Aristocrat", + "The Dungeon Master", + "The Easy Stroll", + "The Eldritch Decay", + "The Emptiness", + "The Encroaching Darkness", + "The Endless Darkness", + "The Endurance", + "The Enforcer", + "The Enlightened", + "The Enthusiasts", + "The Escape", + "The Eternal War", + "The Ethereal", + "The Explorer", + "The Eye of Terror", + "The Eye of the Dragon", + "The Fathomless Depths", + "The Feast", + "The Fiend", + "The Fishmonger", + "The Fletcher", + "The Flora's Gift", + "The Fool", + "The Forgotten Treasure", + "The Formless Sea", + "The Forsaken", + "The Forward Gaze", + "The Fox", + "The Fox in the Brambles", + "The Gambler", + "The Garish Power", + "The Gemcutter", + "The Gentleman", + "The Gladiator", + "The Golden Era", + "The Greatest Intentions", + "The Gulf", + "The Hale Heart", + "The Harvester", + "The Hermit", + "The Heroic Shot", + "The Hive of Knowledge", + "The Hoarder", + "The Hook", + "The Hunger", + "The Immortal", + "The Incantation", + "The Innocent", + "The Inoculated", + "The Insatiable", + "The Inventor", + "The Jester", + "The Jeweller's Boon", + "The Journalist", + "The Journey", + "The King's Blade", + "The King's Heart", + "The Landing", + "The Last One Standing", + "The Last Supper", + "The Leviathan", + "The Lich", + "The Life Thief", + "The Lion", + "The Long Con", + "The Long Watch", + "The Lord in Black", + "The Lord of Celebration", + "The Lover", + "The Lunaris Priestess", + "The Magma Crab", + "The Master", + "The Master Artisan", + "The Mercenary", + "The Messenger", + "The Metalsmith's Gift", + "The Mind's Eyes", + "The Mountain", + "The Nurse", + "The Oath", + "The Obscured", + "The Offering", + "The Offspring", + "The Old Man", + "The One That Got Away", + "The One With All", + "The Opulent", + "The Pack Leader", + "The Pact", + "The Patient", + "The Penitent", + "The Poet", + "The Polymath", + "The Porcupine", + "The Price of Devotion", + "The Price of Loyalty", + "The Price of Prescience", + "The Price of Protection", + "The Primordial", + "The Prince of Darkness", + "The Professor", + "The Progeny of Lunaris", + "The Puzzle", + "The Queen", + "The Rabbit's Foot", + "The Rabid Rhoa", + "The Realm", + "The Risk", + "The Rite of Elements", + "The Road to Power", + "The Ruthless Ceinture", + "The Sacrifice", + "The Saint's Treasure", + "The Samurai's Eye", + "The Scarred Meadow", + "The Scavenger", + "The Scholar", + "The Scout", + "The Seeker", + "The Sephirot", + "The Shepherd's Sandals", + "The Shieldbearer", + "The Shortcut", + "The Side Quest", + "The Sigil", + "The Siren", + "The Skeleton", + "The Soul", + "The Spark and the Flame", + "The Spoiled Prince", + "The Standoff", + "The Stormcaller", + "The Strategist", + "The Summoner", + "The Sun", + "The Surgeon", + "The Surveyor", + "The Survivalist", + "The Sustenance", + "The Sword King's Salute", + "The Thaumaturgist", + "The Throne", + "The Tinkerer's Table", + "The Tireless Extractor", + "The Tower", + "The Traitor", + "The Trial", + "The Tumbleweed", + "The Twilight Moon", + "The Twins", + "The Tyrant", + "The Undaunted", + "The Undisputed", + "The Unexpected Prize", + "The Union", + "The Valkyrie", + "The Vast", + "The Visionary", + "The Void", + "The Warden", + "The Warlord", + "The Watcher", + "The Web", + "The White Knight", + "The Whiteout", + "The Wilted Rose", + "The Wind", + "The Witch", + "The Wolf", + "The Wolf's Legacy", + "The Wolf's Shadow", + "The Wolven King's Bite", + "The Wolverine", + "The World Eater", + "The Wrath", + "The Wretched", + "Thirst for Knowledge", + "Three Faces in the Dark", + "Three Voices", + "Thunderous Skies", + "Time-Lost Relic", + "Tranquillity", + "Treasure Hunter", + "Triskaidekaphobia", + "Turn the Other Cheek", + "Unchained", + "Underground Forest", + "Unrequited Love", + "Vanity", + "Vinia's Token", + "Void of the Elements", + "Volatile Power", + "Wealth and Power", + "Winter's Embrace", + "Friendship", + "Vile Power", + "Squandered Prosperity", + "Blessing of God", + "The Devastator", + "The Iron Bard", + "Luck of the Vaal", + "A Note in the Wind", + "The Valley of Steel Boxes", + "Akil's Prophecy", + "The Mayor", + "The Transformation", + "The Mad King", + "Treasures of the Vaal", +]; + +pub const TUP_NAMES_PRICES: &'static [(&str, f32)] = &[ + ("House of Mirrors", 11608.35), + ("The Apothecary", 11251.17), + ("The Price of Devotion", 5772.65), + ("Unrequited Love", 4464.75), + ("The Doctor", 4107.57), + ("The Demon", 3393.21), + ("The Fiend", 2500.26), + ("The Immortal", 1285.85), + ("Love Through Ice", 1232.27), + ("The Shieldbearer", 571.49), + ("The Nurse", 482.19), + ("Seven Years Bad Luck", 335.0), + ("The Cheater", 267.88), + ("Choking Guilt", 267.88), + ("Wealth and Power", 196.45), + ("The Sephirot", 160.0), + ("Succor of the Sinless", 160.0), + ("Desecrated Virtue", 129.88), + ("Doryani's Epiphany", 122.89), + ("The Price of Loyalty", 101.3), + ("The Samurai's Eye", 82.75), + ("Brother's Stash", 75.77), + ("The Dragon's Heart", 75.0), + ("Deadly Joy", 60.0), + ("The Patient", 59.0), + ("A Fate Worse Than Death", 55.0), + ("The Enlightened", 50.0), + ("The Strategist", 45.0), + ("Eternal Bonds", 40.72), + ("Broken Promises", 40.0), + ("Luminous Trove", 35.27), + ("Darker Half", 34.97), + ("The Artist", 32.0), + ("The Gulf", 29.46), + ("The Mind's Eyes", 29.0), + ("Home", 27.93), + ("The Academic", 27.0), + ("Gemcutter's Mercy", 24.87), + ("The Destination", 24.0), + ("The Sacrifice", 20.0), + ("Monochrome", 20.0), + ("Imperfect Memories", 20.0), + ("Magnum Opus", 19.98), + ("The Hook", 17.48), + ("Alluring Bounty", 16.15), + ("Winter's Embrace", 15.42), + ("Altered Perception", 14.77), + ("Gift of Asenath", 13.0), + ("The Greatest Intentions", 10.0), + ("A Modest Request", 10.0), + ("The Eternal War", 10.0), + ("The Aspirant", 10.0), + ("The Astromancer", 9.96), + ("Justified Ambition", 9.66), + ("Beauty Through Death", 9.5), + ("The Fishmonger", 9.18), + ("The Damned", 9.0), + ("The Eye of Terror", 9.0), + ("Fateful Meeting", 9.0), + ("Remembrance", 8.24), + ("The Leviathan", 8.0), + ("The One That Got Away", 7.74), + ("Pride of the First Ones", 7.0), + ("The Escape", 7.0), + ("The Bitter Blossom", 7.0), + ("The Rabbit's Foot", 7.0), + ("Judging Voices", 7.0), + ("The Enforcer", 7.0), + ("Nook's Crown", 6.0), + ("The Sustenance", 6.0), + ("A Familiar Call", 5.96), + ("The Scout", 5.9), + ("Abandoned Wealth", 5.73), + ("Chaotic Disposition", 5.7), + ("Something Dark", 5.05), + ("Mawr Blaidd", 5.0), + ("The Polymath", 5.0), + ("The Undisputed", 5.0), + ("The Bargain", 5.0), + ("Azyran's Reward", 5.0), + ("Void of the Elements", 5.0), + ("The Old Man", 5.0), + ("Underground Forest", 5.0), + ("Etched in Blood", 5.0), + ("The Eldritch Decay", 5.0), + ("The Progeny of Lunaris", 5.0), + ("The White Knight", 5.0), + ("The Long Con", 5.0), + ("Draped in Dreams", 5.0), + ("Haunting Shadows", 5.0), + ("The Shortcut", 5.0), + ("Dementophobia", 5.0), + ("The Emptiness", 5.0), + ("Bijoux", 5.0), + ("Duality", 5.0), + ("Lethean Temptation", 5.0), + ("The Vast", 4.98), + ("Desperate Crusade", 4.89), + ("Further Invention", 4.73), + ("The Offering", 4.0), + ("The Chosen", 4.0), + ("Brotherhood in Exile", 4.0), + ("Dying Light", 4.0), + ("Keeper's Corruption", 4.0), + ("Ambitious Obsession", 4.0), + ("The Forgotten Treasure", 4.0), + ("Chasing Risk", 4.0), + ("The Catch", 4.0), + ("Rebirth and Renewal", 4.0), + ("Peaceful Moments", 3.98), + ("The Shepherd's Sandals", 3.87), + ("The Price of Prescience", 3.86), + ("The Celestial Stone", 3.72), + ("Death", 3.0), + ("Merciless Armament", 3.0), + ("Pride Before the Fall", 3.0), + ("The Brittle Emperor", 3.0), + ("The Queen", 3.0), + ("The Risk", 3.0), + ("The Thaumaturgist", 3.0), + ("The Void", 3.0), + ("Rebirth", 3.0), + ("The World Eater", 3.0), + ("The Dreamer", 3.0), + ("The Hale Heart", 3.0), + ("The Professor", 3.0), + ("Perfection", 3.0), + ("The Undaunted", 3.0), + ("Boon of the First Ones", 3.0), + ("The Seeker", 3.0), + ("Dark Dreams", 3.0), + ("The Side Quest", 3.0), + ("Council of Cats", 3.0), + ("Prometheus' Armoury", 3.0), + ("The Tumbleweed", 3.0), + ("The Awakened", 3.0), + ("The Hive of Knowledge", 3.0), + ("Brush, Paint and Palette", 3.0), + ("The Enthusiasts", 3.0), + ("Lachrymal Necrosis", 3.0), + ("Costly Curio", 3.0), + ("A Stone Perfected", 3.0), + ("Guardian's Challenge", 3.0), + ("The Forward Gaze", 3.0), + ("Hunter's Reward", 2.99), + ("The Twilight Moon", 2.99), + ("The Endless Darkness", 2.99), + ("Parasitic Passengers", 2.96), + ("Silence and Frost", 2.9), + ("The Soul", 2.84), + ("The Deal", 2.78), + ("The Prince of Darkness", 2.75), + ("The Dungeon Master", 2.74), + ("Terrible Secret of Space", 2.71), + ("Divine Justice", 2.63), + ("Prejudice", 2.59), + ("The Messenger", 2.55), + ("Audacity", 2.54), + ("The Whiteout", 2.5), + ("The Road to Power", 2.42), + ("The Avenger", 2.28), + ("Misery in Darkness", 2.26), + ("The Tyrant", 2.25), + ("The Life Thief", 2.17), + ("The Brawny Battle Mage", 2.03), + ("Bowyer's Dream", 2.0), + ("Dying Anguish", 2.0), + ("Emperor of Purity", 2.0), + ("Light and Truth", 2.0), + ("Lucky Deck", 2.0), + ("The Body", 2.0), + ("The Cartographer", 2.0), + ("The Cataclysm", 2.0), + ("The Celestial Justicar", 2.0), + ("The Drunken Aristocrat", 2.0), + ("The Feast", 2.0), + ("The Hunger", 2.0), + ("The Jester", 2.0), + ("The Pact", 2.0), + ("The Siren", 2.0), + ("The Throne", 2.0), + ("The Union", 2.0), + ("The Valkyrie", 2.0), + ("The Wretched", 2.0), + ("The Wolven King's Bite", 2.0), + ("The Saint's Treasure", 2.0), + ("The Spark and the Flame", 2.0), + ("No Traces", 2.0), + ("The Obscured", 2.0), + ("The Breach", 2.0), + ("Immortal Resolve", 2.0), + ("The Darkest Dream", 2.0), + ("The Innocent", 2.0), + ("The Cacophony", 2.0), + ("A Dab of Ink", 2.0), + ("Sambodhi's Vow", 2.0), + ("The Lord of Celebration", 2.0), + ("The Landing", 2.0), + ("The Journey", 2.0), + ("Burning Blood", 2.0), + ("The Deep Ones", 2.0), + ("Demigod's Wager", 2.0), + ("Buried Treasure", 2.0), + ("The Primordial", 2.0), + ("The Heroic Shot", 2.0), + ("Cameria's Cut", 2.0), + ("Baited Expectations", 2.0), + ("Deathly Designs", 2.0), + ("The Easy Stroll", 2.0), + ("The Unexpected Prize", 2.0), + ("Unchained", 2.0), + ("Society's Remorse", 2.0), + ("The Bear Woman", 2.0), + ("Reckless Ambition", 2.0), + ("The Offspring", 2.0), + ("Disdain", 2.0), + ("The Magma Crab", 2.0), + ("Checkmate", 2.0), + ("Endless Night", 2.0), + ("A Mother's Parting Gift", 1.99), + ("The Ethereal", 1.99), + ("Echoes of Love", 1.99), + ("The Fool", 1.99), + ("The Archmage's Right Hand", 1.99), + ("Sambodhi's Wisdom", 1.99), + ("Dialla's Subjugation", 1.9), + ("The King's Heart", 1.89), + ("Heterochromia", 1.84), + ("The Warlord", 1.75), + ("Arrogance of the Vaal", 1.74), + ("The Incantation", 1.65), + ("The Last One Standing", 1.6), + ("Vinia's Token", 1.55), + ("The Wind", 1.35), + ("Triskaidekaphobia", 1.32), + ("Harmony of Souls", 1.31), + ("Lucky Connections", 1.19), + ("The Dark Mage", 1.17), + ("From Bone to Ashes", 1.16), + ("More is Never Enough", 1.13), + ("The Lord in Black", 1.05), + ("The Gentleman", 1.02), + ("Anarchy's Price", 1.0), + ("Assassin's Favour", 1.0), + ("Blind Venture", 1.0), + ("Boundless Realms", 1.0), + ("Cartographer's Delight", 1.0), + ("Coveted Possession", 1.0), + ("Destined to Crumble", 1.0), + ("Doedre's Madness", 1.0), + ("Earth Drinker", 1.0), + ("Emperor's Luck", 1.0), + ("Gemcutter's Promise", 1.0), + ("Gift of the Gemling Queen", 1.0), + ("Glimmer of Hope", 1.0), + ("Grave Knowledge", 1.0), + ("Her Mask", 1.0), + ("Hope", 1.0), + ("Hubris", 1.0), + ("Humility", 1.0), + ("Hunter's Resolve", 1.0), + ("Jack in the Box", 1.0), + ("Lantador's Lost Love", 1.0), + ("Last Hope", 1.0), + ("Lost Worlds", 1.0), + ("Loyalty", 1.0), + ("Lysah's Respite", 1.0), + ("Prosperity", 1.0), + ("Rain of Chaos", 1.0), + ("Rain Tempter", 1.0), + ("Rats", 1.0), + ("Scholar of the Seas", 1.0), + ("Shard of Fate", 1.0), + ("The Aesthete", 1.0), + ("The Arena Champion", 1.0), + ("The Battle Born", 1.0), + ("The Betrayal", 1.0), + ("The Calling", 1.0), + ("The Carrion Crow", 1.0), + ("The Catalyst", 1.0), + ("The Conduit", 1.0), + ("The Cursed King", 1.0), + ("The Dapper Prodigy", 1.0), + ("The Demoness", 1.0), + ("The Doppelganger", 1.0), + ("The Dragon", 1.0), + ("The Encroaching Darkness", 1.0), + ("The Endurance", 1.0), + ("The Explorer", 1.0), + ("The Fletcher", 1.0), + ("The Flora's Gift", 1.0), + ("The Formless Sea", 1.0), + ("The Fox", 1.0), + ("The Gambler", 1.0), + ("The Gemcutter", 1.0), + ("The Gladiator", 1.0), + ("The Harvester", 1.0), + ("The Hermit", 1.0), + ("The Hoarder", 1.0), + ("The Inoculated", 1.0), + ("The Inventor", 1.0), + ("The King's Blade", 1.0), + ("The Lich", 1.0), + ("The Lion", 1.0), + ("The Lover", 1.0), + ("The Lunaris Priestess", 1.0), + ("The Mercenary", 1.0), + ("The Metalsmith's Gift", 1.0), + ("The Oath", 1.0), + ("The One With All", 1.0), + ("The Pack Leader", 1.0), + ("The Penitent", 1.0), + ("The Poet", 1.0), + ("The Rabid Rhoa", 1.0), + ("The Scarred Meadow", 1.0), + ("The Scavenger", 1.0), + ("The Scholar", 1.0), + ("The Sigil", 1.0), + ("The Spoiled Prince", 1.0), + ("The Stormcaller", 1.0), + ("The Summoner", 1.0), + ("The Sun", 1.0), + ("The Surgeon", 1.0), + ("The Surveyor", 1.0), + ("The Survivalist", 1.0), + ("The Tower", 1.0), + ("The Traitor", 1.0), + ("The Trial", 1.0), + ("The Twins", 1.0), + ("The Visionary", 1.0), + ("The Warden", 1.0), + ("The Watcher", 1.0), + ("The Web", 1.0), + ("The Wolf", 1.0), + ("The Wolf's Shadow", 1.0), + ("The Wrath", 1.0), + ("Three Faces in the Dark", 1.0), + ("Thunderous Skies", 1.0), + ("Time-Lost Relic", 1.0), + ("Tranquillity", 1.0), + ("Treasure Hunter", 1.0), + ("Turn the Other Cheek", 1.0), + ("Volatile Power", 1.0), + ("Mitts", 1.0), + ("Call to the First Ones", 1.0), + ("Lingering Remnants", 1.0), + ("The Coming Storm", 1.0), + ("The Wolverine", 1.0), + ("The Garish Power", 1.0), + ("The Standoff", 1.0), + ("The Porcupine", 1.0), + ("The Forsaken", 1.0), + ("Might is Right", 1.0), + ("Atziri's Arsenal", 1.0), + ("The Opulent", 1.0), + ("Struck by Lightning", 1.0), + ("The Blazing Fire", 1.0), + ("The Ruthless Ceinture", 1.0), + ("The Eye of the Dragon", 1.0), + ("The Realm", 1.0), + ("Left to Fate", 1.0), + ("The Deceiver", 1.0), + ("The Puzzle", 1.0), + ("The Insatiable", 1.0), + ("Forbidden Power", 1.0), + ("Three Voices", 1.0), + ("The Jeweller's Boon", 1.0), + ("The Army of Blood", 1.0), + ("The Beast", 1.0), + ("The Sword King's Salute", 1.0), + ("The Master", 1.0), + ("The Fathomless Depths", 1.0), + ("The Rite of Elements", 1.0), + ("The Dreamland", 1.0), + ("The Admirer", 1.0), + ("The Witch", 1.0), + ("The Wilted Rose", 1.0), + ("The Price of Protection", 1.0), + ("The Master Artisan", 1.0), + ("Alone in the Darkness", 1.0), + ("Dark Temptation", 1.0), + ("The Golden Era", 1.0), + ("Boon of Justice", 1.0), + ("Vanity", 1.0), + ("Thirst for Knowledge", 1.0), + ("The Mountain", 1.0), + ("The Skeleton", 1.0), + ("The Wolf's Legacy", 1.0), + ("The Bones", 1.0), + ("The Craving", 1.0), + ("The Tinkerer's Table", 1.0), + ("The Journalist", 1.0), + ("The Cache", 1.0), + ("Cursed Words", 1.0), + ("The Long Watch", 1.0), + ("Acclimatisation", 1.0), + ("The Adventuring Spirit", 1.0), + ("The Card Sharp", 1.0), + ("The Last Supper", 1.0), + ("A Sea of Blue", 1.0), + ("The Blessing of Moosh", 1.0), + ("The Fox in the Brambles", 1.0), + ("The Tireless Extractor", 1.0), + ("Astral Protection", 1.0), + ("Azure Rage", 1.0), + ("Broken Truce", 1.0), + ("The Chains that Bind", 0.98), + ("Imperial Legacy", 0.45), +]; + +pub fn create_starter_hashmap( + tup_names_prices: Vec<(String, f32)>, +) -> HashMap<&'static str, Record> { + let mut map = HashMap::<&'static str, Record>::new(); + + for name in NAMES { + let mut record = Record::default(); + record.name = name.to_string(); + map.insert(name, record); + + map.insert( + name, + Record { + name: name.into(), + ..Default::default() + }, + ); + } + + for (name, price) in tup_names_prices { + let mut record = match map.get_mut(&*name) { + Some(record) => record, + None => { + tracing::error!("Could not get record. Name: {}.", name); + panic!(); + } + }; + record.calculated = Some(price); + } + + map +} + +pub fn dummy_tup_names_prices() -> Vec<(String, f32)> { + let mut v: Vec<(String, f32)> = vec![]; + for (name, price) in TUP_NAMES_PRICES { + v.push((name.to_string(), *price)); + } + + v +} + +pub fn names_prices_from_json(string_json: &str) -> Vec<(String, f32)> { + #[derive(Deserialize)] + struct NinjaResponse { + lines: Vec, + } + + let ninja_response: NinjaResponse = serde_json::from_str(string_json).unwrap(); + let ninja_records: Vec = ninja_response.lines; + let mut tuples_vector: Vec<(String, f32)> = vec![]; + for record in ninja_records { + tuples_vector.push((record.name, record.calculated)); + } + + tuples_vector +} + +pub async fn fetch_div_prices() -> Result { + let client = reqwest::Client::new(); + let url = + "https://poe.ninja/api/data/itemoverview?league=Kalandra&type=DivinationCard&language=en"; + let json = client.get(url).send().await?.text().await?; + Ok(json) +} + +/* +pub async fn read_json(json_path: &str) -> Result { + let json = match std::fs::read_to_string(json_path) { + Ok(json) => { + // check file age + let metadata = match std::fs::metadata(json_path) { + Ok(metadata) => metadata, + Err(_) => { + todo!() + } + }; + todo!() + } + Err(_) => { + // download json + match download_json().await { + Ok(json) => todo!(), + Err(err) => todo!(), + } + } + }; +} + +*/ + +pub fn is_legacy_card(s: &str) -> bool { + LEGACY_CARDS.contains(&s) +} diff --git a/src-tauri/lib/src/types/record/mod.rs b/src-tauri/lib/src/types/record/mod.rs new file mode 100644 index 00000000..c63af0d9 --- /dev/null +++ b/src-tauri/lib/src/types/record/mod.rs @@ -0,0 +1,249 @@ +pub mod csv; +mod initial_data; + +use std::collections::HashMap; + +// pub use initial_data::create_starter_hashmap; +// pub use initial_data::download_json; +// pub use initial_data::dummy_tup_names_prices; +// pub use initial_data::is_legacy_card; +// pub use initial_data::names_prices_from_json; +// pub use initial_data::LEGACY_CARDS; +// pub use initial_data::NAMES; +// pub use initial_data::TUP_NAMES_PRICES; +pub use initial_data::*; + +use serde::{Deserialize, Serialize}; + +use crate::error::Error; + +use super::weighted_record::WeightedRecord; + +#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)] +#[serde(rename_all = "camelCase")] +pub struct Record { + pub stack_size: i32, + pub name: String, + pub calculated: Option, + pub total: Option, +} + +impl Default for Record { + fn default() -> Self { + Self { + stack_size: 0, + name: String::default(), + calculated: Some(0.), + total: Some(0.), + } + } +} + +#[derive(Debug, Deserialize, Serialize, Clone, Default, PartialEq)] +#[serde(rename_all = "camelCase")] +pub struct NinjaRecord { + pub name: String, + #[serde(rename(serialize = "calculated", deserialize = "chaosValue"))] + pub calculated: f32, +} + +pub fn total_price_chaos(records: &Vec) -> f32 { + records + .iter() + .map(|r| -> f32 { r.calculated.unwrap_or_default() * r.stack_size as f32 }) + .sum::() +} + +pub fn total_price_divine(records: &Vec, divine_price: f32) -> f32 { + total_price_chaos(records) / divine_price +} + +pub fn map_to_vec(map: HashMap<&str, Record>) -> Vec { + let mut v: Vec = vec![]; + for (_, record) in map { + v.push(record); + } + v +} + +pub fn vec_to_map( + records: Vec, + mut map: HashMap<&'static str, Record>, +) -> Result, Error> { + // let mode = std::env::var("RUST_ENV"); + + // let mut map = create_starter_hashmap(); + for r in records { + let name = r.name.as_str(); + let record_from_map: &mut Record = match map.get_mut(name) { + Some(record) => record, + None => { + // find_most_similar(name, &NAMES); + + tracing::warn!("{}", Error::NotDivinationCard(name.to_string())); + continue; + + // tracing::error!("Could not get record from map. Record name: {}", name); + // panic!("Could not get Record from map") + // return Err(Error::BadRecord(name.to_string())); + } + }; + // map.get_mut(r.name.as_str()) + // .expect("Could not get Record from map"); + + record_from_map.stack_size = r.stack_size; + record_from_map.total = Some( + record_from_map.stack_size as f32 * record_from_map.calculated.unwrap_or_default(), + ); + } + + Ok(map) +} + +pub fn find_most_similar(name: &str, names: &[&str]) -> (String, f64) { + let mut similarity_map = HashMap::::new(); + for initial_name in names { + let similarity = strsim::normalized_damerau_levenshtein(name, initial_name); + similarity_map.insert(initial_name.to_string(), similarity); + } + + let most_similar = similarity_map + .iter() + .max_by(|a, b| a.1.partial_cmp(b.1).unwrap()) + .unwrap(); + + (most_similar.0.to_owned(), most_similar.1.to_owned()) + + // println!("most similar for {name} is {:?}", most_similar); +} + +pub fn fix_record_names( + records: &mut Vec, + names: &[&str], + map: &HashMap<&'static str, Record>, +) -> (Vec, HashMap) { + let mut fixed_names: HashMap = HashMap::new(); + let records = records + .into_iter() + .map(|record| { + if let None = map.get(&*record.name) { + let (similar_name, similar_score) = find_most_similar(&record.name, names); + match similar_score >= 0.75 { + true => { + fixed_names.insert(record.name.clone(), similar_name.clone()); + record.name = similar_name + } + false => { + let record_name = format!("The {}", record.name); + let (similar_name, similar_score) = find_most_similar(&record_name, names); + match similar_score >= 0.75 { + true => { + fixed_names.insert(record.name.clone(), similar_name.clone()); + record.name = similar_name + } + false => { + tracing::warn!( + "Too low similarity score. Name: {}, score: {similar_score}", + record.name + ) + } + } + } + } + } + + record.clone() + }) + .collect::>(); + + println!("Fixed names: {:?}", fixed_names); + (records, fixed_names) +} + +pub fn find_not_divination_cards( + records: &Vec, + map: &HashMap<&'static str, Record>, +) -> Vec { + let mut not_cards: Vec = vec![]; + + for r in records { + let name = r.name.as_str(); + if let None = map.get(name) { + not_cards.push(name.into()); + } + } + + not_cards +} + +pub fn polish_records( + records: Vec, + map: HashMap<&'static str, Record>, +) -> Result, Error> { + let records_map = vec_to_map(records, map)?; + let records = map_to_vec(records_map); + Ok(records) +} + +// #[derive(Debug, Deserialize, Serialize, Clone, PartialEq)] +// #[serde(rename_all = "camelCase")] +// pub struct WeightedRecord { +// pub stack_size: i32, +// pub name: String, +// pub calculated: Option, +// pub total: Option, +// pub real_weight: f32, +// } + +// impl Default for WeightedRecord { +// fn default() -> Self { +// Self { +// real_weight: 0., +// stack_size: 0, +// name: String::default(), +// calculated: Some(0.), +// total: Some(0.), +// } +// } +// } + +fn calc_record_weight(record: &Record, all_stack_size: i32) -> f32 { + record.stack_size as f32 / all_stack_size as f32 +} + +fn calc_record_real_weight( + record: &Record, + real_stacked_summary_weight: f32, + condense_factor: f32, + all_stack_size: i32, +) -> f32 { + (real_stacked_summary_weight * calc_record_weight(record, all_stack_size)) + .powf(1.0 / condense_factor) +} + +pub fn weight_records(records: Vec) -> Vec { + let all_stack_size: i32 = records.iter().map(|r| r.stack_size).sum(); + let real_stacked_rain_of_chaos_weight: f32 = 2452.65513; + let condense_factor: f32 = 2.0 / 3.0; + let rain_of_chaos = records.iter().find(|r| r.name == "Rain of Chaos").unwrap(); + let weight = rain_of_chaos.stack_size as f32 / all_stack_size as f32; + let real_stacked_summary_weight = real_stacked_rain_of_chaos_weight / weight; + records + .into_iter() + .map(|record| { + let real_weight = calc_record_real_weight( + &record, + real_stacked_summary_weight, + condense_factor, + all_stack_size, + ); + WeightedRecord { + stack_size: record.stack_size, + name: record.name, + calculated: record.calculated, + total: record.total, + real_weight, + } + }) + .collect::>() +} diff --git a/src-tauri/lib/src/types/weighted_record/mod.rs b/src-tauri/lib/src/types/weighted_record/mod.rs new file mode 100644 index 00000000..4dfadbae --- /dev/null +++ b/src-tauri/lib/src/types/weighted_record/mod.rs @@ -0,0 +1,34 @@ +use serde::{Deserialize, Serialize}; + +use crate::error::Error; + +#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)] +#[serde(rename_all = "camelCase")] +pub struct WeightedRecord { + pub stack_size: i32, + pub name: String, + pub calculated: Option, + pub total: Option, + pub real_weight: f32, +} + +impl Default for WeightedRecord { + fn default() -> Self { + Self { + real_weight: 0., + stack_size: 0, + name: String::default(), + calculated: Some(0.), + total: Some(0.), + } + } +} + +pub fn write(records: &Vec) -> Result { + let mut writer = csv::Writer::from_writer(vec![]); + for record in records { + writer.serialize(record)?; + } + let content_string = String::from_utf8(writer.into_inner().expect("Error with csv serialize"))?; + Ok(content_string) +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 00000000..c9b2009b --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,183 @@ +#![cfg_attr( + all(not(debug_assertions), target_os = "windows"), + windows_subsystem = "windows" +)] + +use std::collections::HashMap; + +use lib::{ + error::Error, + types::{ + record::{self, find_not_divination_cards, Record}, + weighted_record::WeightedRecord, + }, +}; + +use serde::Serialize; +#[cfg(debug_assertions)] +use tauri::Manager; + +#[tokio::main] +async fn main() { + lib::dev::init_tracing(); + tracing::event!(tracing::Level::DEBUG, "app startup"); + match update_prices_data().await { + Ok(_) => tracing::event!(tracing::Level::DEBUG, "prices updated"), + Err(err) => tracing::event!(tracing::Level::ERROR, "could not update prices {:?}", err), + }; + + tauri::Builder::default() + .setup(|app| { + #[cfg(debug_assertions)] // only include this code on debug builds + { + let window = app.get_window("main").unwrap(); + window.open_devtools(); + } + Ok(()) + }) + .invoke_handler(tauri::generate_handler![ + read_polish_csv, + total_chaos, + merge_csv, + update_prices, + give_record, + get_hashmap, + weight_records_to_csv + ]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct RecordsCsv { + csv: String, + records: Vec, + not_cards: Vec, + fixed_names: HashMap, +} + +#[tauri::command] +async fn read_polish_csv( + csv_string: &str, + minimum_card_price: Option, +) -> Result { + let map = starter_map().await?; + + let mut records = record::csv::string::read(csv_string, minimum_card_price)?; + let (records, fixed_names) = record::fix_record_names(&mut records, &record::NAMES, &map); + + let not_cards = find_not_divination_cards(&records, &map); + println!("not cards: {:?}", not_cards); + + let records = record::polish_records(records, map.clone())?; + let csv_output = record::csv::string::write(&records)?; + + Ok(RecordsCsv { + csv: csv_output, + records, + not_cards, + fixed_names, + }) +} + +#[tauri::command] +fn total_chaos(csv_string: &str, minimum_card_price: Option) -> Result { + record::csv::string::total_chaos(csv_string, minimum_card_price) +} + +#[tauri::command] +async fn merge_csv(csv_file_strings: Vec<&str>) -> Result { + let starter_map = starter_map().await?; + record::csv::string::merge(starter_map, &csv_file_strings[..]) +} + +#[tauri::command] +async fn update_prices() -> Result<(), Error> { + Ok(update_prices_data().await?) +} + +// Ok(Record::default()) +#[tauri::command] +fn give_record() -> Result { + Ok(Record { + stack_size: 0, + name: String::from("test"), + calculated: None, + total: None, + }) +} + +#[tauri::command] +async fn get_hashmap() -> Result, Error> { + starter_map().await +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct WeightedRecordCsv { + csv: String, + records: Vec, +} + +#[tauri::command] +async fn weight_records_to_csv(records: Vec) -> Result { + let weighted_records = record::weight_records(records); + let csv = lib::types::weighted_record::write(&weighted_records)?; + Ok(WeightedRecordCsv { + records: weighted_records, + csv, + }) +} + +async fn starter_map() -> Result, Error> { + let prices_json = div_prices().await?; + let names_prices = record::names_prices_from_json(&prices_json); + let starter_map = record::create_starter_hashmap(names_prices); + Ok(starter_map) +} + +async fn div_prices() -> Result { + let path = prices_path(); + let json = match std::fs::read_to_string(&path) { + Ok(json) => json, + Err(_) => { + let json = record::fetch_div_prices().await?; + std::fs::write(path, &json)?; + json + } + }; + + Ok(json) +} + +async fn update_prices_data() -> Result<(), Error> { + let path = prices_path(); + + let json = record::fetch_div_prices().await?; + std::fs::write(path, &json)?; + Ok(()) +} + +fn get_appdata_dir() -> std::path::PathBuf { + let mut path = tauri::api::path::config_dir().unwrap(); + path.push("divicards"); + + if !path.exists() { + std::fs::create_dir(&path).expect("Error on appdata dir creation"); + } + + path +} + +fn prices_path() -> std::path::PathBuf { + let mut path = get_appdata_dir(); + path.push("div-prices.json"); + path +} + +// const S: &'static str = "stackSize,name,calculated,total +// 49,The Opulent,1.0,49.0 +// 0,The Price of Devotion,5772.65,0.0 +// 0,Perfection,3.0,0.0 +// 65,Three Faces in the Dark,1.0,65.0"; diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 00000000..e9b50fff --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,67 @@ +{ + "$schema": "../node_modules/@tauri-apps/cli/schema.json", + "build": { + "beforeBuildCommand": "npm run build", + "beforeDevCommand": "npm run dev", + "devPath": "http://localhost:5173", + "distDir": "../dist" + }, + "package": { + "productName": "divicards", + "version": "0.1.0" + }, + "tauri": { + "allowlist": { + "all": true + }, + "bundle": { + "active": true, + "category": "DeveloperTool", + "copyright": "", + "deb": { + "depends": [] + }, + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "identifier": "divicards", + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [], + "shortDescription": "", + "targets": "all", + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + } + }, + "security": { + "csp": null + }, + "updater": { + "active": false + }, + "windows": [ + { + "fullscreen": false, + "height": 1200, + "resizable": true, + "title": "Divicards", + "width": 1400, + "fileDropEnabled": false + } + ] + } +} diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 00000000..eb197738 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/assets/vue.svg b/src/assets/vue.svg new file mode 100644 index 00000000..770e9d33 --- /dev/null +++ b/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/BasePopup.vue b/src/components/BasePopup.vue new file mode 100644 index 00000000..6359f932 --- /dev/null +++ b/src/components/BasePopup.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/src/components/DivTable/DivTable copy.vue b/src/components/DivTable/DivTable copy.vue new file mode 100644 index 00000000..a55ccbf8 --- /dev/null +++ b/src/components/DivTable/DivTable copy.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/components/DivTable/DivTable.story.vue b/src/components/DivTable/DivTable.story.vue new file mode 100644 index 00000000..337b4663 --- /dev/null +++ b/src/components/DivTable/DivTable.story.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/components/DivTable/DivTable.vue b/src/components/DivTable/DivTable.vue new file mode 100644 index 00000000..87eb1af4 --- /dev/null +++ b/src/components/DivTable/DivTable.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/src/components/DivTable/dummyRecords.ts b/src/components/DivTable/dummyRecords.ts new file mode 100644 index 00000000..6960437e --- /dev/null +++ b/src/components/DivTable/dummyRecords.ts @@ -0,0 +1,5 @@ +import { CardRecord, WeightedCardRecord } from '../../types'; + +import records from './records.json' assert { type: 'json' }; + +export const dummyRecords: WeightedCardRecord[] = records; diff --git a/src/components/DivTable/orderBy.ts b/src/components/DivTable/orderBy.ts new file mode 100644 index 00000000..805662ae --- /dev/null +++ b/src/components/DivTable/orderBy.ts @@ -0,0 +1,38 @@ +import { Column, Order, CardRecord } from '../../types'; + +export const byPrice = (order: Order, records: CardRecord[]) => { + return records.sort((a, b) => { + if (order === 'asc') return a.calculated - b.calculated; + if (order === 'desc') return b.calculated - a.calculated; + throw new Error('Invalid order'); + }); +}; + +export const byStackSize = (order: Order, records: CardRecord[]) => { + return records.sort((a, b) => { + if (order === 'asc') return a.stackSize - b.stackSize; + if (order === 'desc') return b.stackSize - a.stackSize; + throw new Error('invalid order'); + }); +}; + +export const byTotal = (order: Order, records: CardRecord[]) => { + return records.sort((a, b) => { + if (order === 'asc') return a.total - b.total; + if (order === 'desc') return b.total - a.total; + throw new Error('invalid order'); + }); +}; + +export const orderBy = (column: Column, order: Order, records: CardRecord[]): CardRecord[] => { + switch (column) { + case 'price': + return byPrice(order, records); + case 'stackSize': + return byStackSize(order, records); + case 'total': + return byTotal(order, records); + default: + throw new Error('Invalid column name'); + } +}; diff --git a/src/components/DivTable/records.json b/src/components/DivTable/records.json new file mode 100644 index 00000000..f636911c --- /dev/null +++ b/src/components/DivTable/records.json @@ -0,0 +1,1199 @@ +[ + { + "calculated": 5, + "name": "The Progeny of Lunaris", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 25 + }, + { "calculated": 1, "name": "The Scarred Meadow", "realWeight": 17419.63671875, "stackSize": 377, "total": 377 }, + { "calculated": 0, "name": "The Transformation", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 1.7100000381469727, + "name": "The Breach", + "realWeight": 451.12615966796875, + "stackSize": 33, + "total": 56.43000030517578 + }, + { "calculated": 1, "name": "Lost Worlds", "realWeight": 9014.3935546875, "stackSize": 243, "total": 243 }, + { "calculated": 1, "name": "Lucky Connections", "realWeight": 6630.1728515625, "stackSize": 198, "total": 198 }, + { "calculated": 1, "name": "The Last Supper", "realWeight": 1998.076416015625, "stackSize": 89, "total": 89 }, + { "calculated": 1, "name": "The Offering", "realWeight": 492.7528381347656, "stackSize": 35, "total": 35 }, + { "calculated": 5, "name": "The Rabbit's Foot", "realWeight": 26.606155395507812, "stackSize": 5, "total": 25 }, + { "calculated": 1, "name": "The Surgeon", "realWeight": 4503.64599609375, "stackSize": 153, "total": 153 }, + { + "calculated": 3.380000114440918, + "name": "Lethean Temptation", + "realWeight": 64.25262451171875, + "stackSize": 9, + "total": 30.420001983642578 + }, + { "calculated": 5, "name": "The Eye of Terror", "realWeight": 26.606155395507812, "stackSize": 5, "total": 25 }, + { + "calculated": 82.4800033569336, + "name": "The One That Got Away", + "realWeight": 2.3797266483306885, + "stackSize": 1, + "total": 82.4800033569336 + }, + { "calculated": 0, "name": "Birth of the Three", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "Society's Remorse", "realWeight": 3325.769287109375, "stackSize": 125, "total": 125 }, + { "calculated": 2695.5, "name": "The Doctor", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 140, + "name": "Succor of the Sinless", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 560 + }, + { + "calculated": 1.4500000476837158, + "name": "The Lord in Black", + "realWeight": 1133.7618408203125, + "stackSize": 61, + "total": 88.45000457763672 + }, + { "calculated": 1, "name": "The Skeleton", "realWeight": 4816.228515625, "stackSize": 160, "total": 160 }, + { "calculated": 1, "name": "Turn the Other Cheek", "realWeight": 8847.9765625, "stackSize": 240, "total": 240 }, + { + "calculated": 1, + "name": "The Lunaris Priestess", + "realWeight": 8085.18115234375, + "stackSize": 226, + "total": 226 + }, + { "calculated": 1, "name": "The Admirer", "realWeight": 1576.6942138671875, "stackSize": 76, "total": 76 }, + { "calculated": 1, "name": "No Traces", "realWeight": 2273.446044921875, "stackSize": 97, "total": 97 }, + { "calculated": 5.559999942779541, "name": "The Greatest Intentions", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 1.7300000190734863, + "name": "The Undisputed", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 8.649999618530273 + }, + { "calculated": 4, "name": "Burning Blood", "realWeight": 34.974693298339844, "stackSize": 6, "total": 24 }, + { + "calculated": 2.75, + "name": "Lachrymal Necrosis", + "realWeight": 451.12615966796875, + "stackSize": 33, + "total": 90.75 + }, + { "calculated": 1, "name": "The Mountain", "realWeight": 4681.40869140625, "stackSize": 157, "total": 157 }, + { + "calculated": 6.289999961853027, + "name": "The Fishmonger", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 25.15999984741211 + }, + { "calculated": 33, "name": "The Patient", "realWeight": 694.5541381835938, "stackSize": 44, "total": 1452 }, + { "calculated": 2, "name": "The Whiteout", "realWeight": 471.78643798828125, "stackSize": 34, "total": 68 }, + { "calculated": 3, "name": "Silence and Frost", "realWeight": 315.4911193847656, "stackSize": 26, "total": 78 }, + { + "calculated": 1.399999976158142, + "name": "The Brittle Emperor", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 18.19999885559082 + }, + { "calculated": 1, "name": "Might is Right", "realWeight": 3050.35302734375, "stackSize": 118, "total": 118 }, + { "calculated": 2, "name": "Haunting Shadows", "realWeight": 297.4658203125, "stackSize": 25, "total": 50 }, + { + "calculated": 3.5999999046325684, + "name": "The Shepherd's Sandals", + "realWeight": 197.08677673339844, + "stackSize": 19, + "total": 68.4000015258789 + }, + { "calculated": 1, "name": "Tranquillity", "realWeight": 1607.915283203125, "stackSize": 77, "total": 77 }, + { "calculated": 1, "name": "The Gemcutter", "realWeight": 19900.91015625, "stackSize": 412, "total": 412 }, + { "calculated": 4, "name": "The Eldritch Decay", "realWeight": 471.78643798828125, "stackSize": 34, "total": 136 }, + { + "calculated": 4.619999885559082, + "name": "Mawr Blaidd", + "realWeight": 262.4936828613281, + "stackSize": 23, + "total": 106.25999450683594 + }, + { + "calculated": 1, + "name": "The Adventuring Spirit", + "realWeight": 7765.35107421875, + "stackSize": 220, + "total": 220 + }, + { "calculated": 5, "name": "The Escape", "realWeight": 197.08677673339844, "stackSize": 19, "total": 95 }, + { "calculated": 5, "name": "Chaotic Disposition", "realWeight": 3089.210693359375, "stackSize": 119, "total": 595 }, + { + "calculated": 1.5800000429153442, + "name": "Parasitic Passengers", + "realWeight": 602.028564453125, + "stackSize": 40, + "total": 63.20000076293945 + }, + { "calculated": 2, "name": "The King's Heart", "realWeight": 371.64141845703125, "stackSize": 29, "total": 58 }, + { + "calculated": 1.1100000143051147, + "name": "The Wolven King's Bite", + "realWeight": 602.028564453125, + "stackSize": 40, + "total": 44.400001525878906 + }, + { + "calculated": 30.709999084472656, + "name": "Eternal Bonds", + "realWeight": 34.974693298339844, + "stackSize": 6, + "total": 184.25999450683594 + }, + { "calculated": 1, "name": "The Inventor", "realWeight": 5509.14453125, "stackSize": 175, "total": 175 }, + { "calculated": 3, "name": "The Celestial Stone", "realWeight": 34.974693298339844, "stackSize": 6, "total": 18 }, + { "calculated": 1, "name": "Grave Knowledge", "realWeight": 3285.93994140625, "stackSize": 124, "total": 124 }, + { + "calculated": 7.360000133514404, + "name": "Dying Light", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 29.440000534057617 + }, + { "calculated": 1, "name": "Disdain", "realWeight": 352.5852355957031, "stackSize": 28, "total": 28 }, + { "calculated": 1, "name": "Forbidden Power", "realWeight": 1964.4957275390625, "stackSize": 88, "total": 88 }, + { "calculated": 2, "name": "Death", "realWeight": 1363.95703125, "stackSize": 69, "total": 138 }, + { "calculated": 2, "name": "Misery in Darkness", "realWeight": 98.92337036132812, "stackSize": 12, "total": 24 }, + { "calculated": 1, "name": "The Blazing Fire", "realWeight": 11269.3984375, "stackSize": 282, "total": 282 }, + { + "calculated": 5.980000019073486, + "name": "The Hive of Knowledge", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 11.960000038146973 + }, + { "calculated": 1, "name": "The Messenger", "realWeight": 1051.16064453125, "stackSize": 58, "total": 58 }, + { "calculated": 1, "name": "The Wolf", "realWeight": 5274.732421875, "stackSize": 170, "total": 170 }, + { "calculated": 0, "name": "Friendship", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 0, "name": "Squandered Prosperity", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "Cartographer's Delight", "realWeight": 4547.87109375, "stackSize": 154, "total": 154 }, + { "calculated": 1, "name": "Broken Truce", "realWeight": 1305.08642578125, "stackSize": 67, "total": 67 }, + { "calculated": 1, "name": "The Beast", "realWeight": 1576.6942138671875, "stackSize": 76, "total": 76 }, + { "calculated": 3, "name": "The Hale Heart", "realWeight": 34.974693298339844, "stackSize": 6, "total": 18 }, + { "calculated": 1, "name": "The Dreamland", "realWeight": 1964.4957275390625, "stackSize": 88, "total": 88 }, + { "calculated": 1, "name": "The Doppelganger", "realWeight": 20483.353515625, "stackSize": 420, "total": 420 }, + { "calculated": 1, "name": "The Twins", "realWeight": 4371.8369140625, "stackSize": 150, "total": 150 }, + { "calculated": 5, "name": "Rebirth and Renewal", "realWeight": 86.81926727294922, "stackSize": 11, "total": 55 }, + { "calculated": 1, "name": "The Dark Mage", "realWeight": 841.3604125976562, "stackSize": 50, "total": 50 }, + { "calculated": 299.5, "name": "The Nurse", "realWeight": 98.92337036132812, "stackSize": 12, "total": 3594 }, + { "calculated": 1, "name": "The Warden", "realWeight": 9690.3017578125, "stackSize": 255, "total": 255 }, + { "calculated": 1, "name": "The Body", "realWeight": 4026.795654296875, "stackSize": 142, "total": 142 }, + { + "calculated": 5, + "name": "The Price of Prescience", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 65 + }, + { + "calculated": 1.809999942779541, + "name": "Deathly Designs", + "realWeight": 391.0290222167969, + "stackSize": 30, + "total": 54.29999923706055 + }, + { "calculated": 0, "name": "The Iron Bard", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "The Tyrant", "realWeight": 297.4658203125, "stackSize": 25, "total": 25 }, + { + "calculated": 1, + "name": "The Eye of the Dragon", + "realWeight": 3365.75830078125, + "stackSize": 126, + "total": 126 + }, + { "calculated": 1, "name": "The Stormcaller", "realWeight": 5509.14453125, "stackSize": 175, "total": 175 }, + { "calculated": 1, "name": "Rain Tempter", "realWeight": 11030.4755859375, "stackSize": 278, "total": 278 }, + { "calculated": 3, "name": "The Cartographer", "realWeight": 6331.095703125, "stackSize": 192, "total": 576 }, + { + "calculated": 58.56999969482422, + "name": "The Dragon's Heart", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 292.8500061035156 + }, + { "calculated": 1, "name": "The Tireless Extractor", "realWeight": 10675.30859375, "stackSize": 272, "total": 272 }, + { "calculated": 1, "name": "The Calling", "realWeight": 3774.29150390625, "stackSize": 136, "total": 136 }, + { "calculated": 0, "name": "Blessing of God", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 1.7400000095367432, + "name": "The Obscured", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 46.97999954223633 + }, + { "calculated": 2, "name": "Sambodhi's Wisdom", "realWeight": 766.7855224609375, "stackSize": 47, "total": 94 }, + { "calculated": 0, "name": "The Devastator", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "Boundless Realms", "realWeight": 5414.97216796875, "stackSize": 173, "total": 173 }, + { "calculated": 1, "name": "The Gambler", "realWeight": 4681.40869140625, "stackSize": 157, "total": 157 }, + { "calculated": 2, "name": "The Magma Crab", "realWeight": 694.5541381835938, "stackSize": 44, "total": 88 }, + { "calculated": 1, "name": "The Visionary", "realWeight": 8682.595703125, "stackSize": 237, "total": 237 }, + { "calculated": 0, "name": "The Mayor", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 4.619999885559082, + "name": "Audacity", + "realWeight": 98.92337036132812, + "stackSize": 12, + "total": 55.439998626708984 + }, + { "calculated": 1, "name": "The Tower", "realWeight": 5891.19921875, "stackSize": 183, "total": 183 }, + { + "calculated": 1, + "name": "A Mother's Parting Gift", + "realWeight": 2238.38037109375, + "stackSize": 96, + "total": 96 + }, + { "calculated": 10, "name": "Altered Perception", "realWeight": 26.606155395507812, "stackSize": 5, "total": 50 }, + { "calculated": 30, "name": "Broken Promises", "realWeight": 19.037813186645508, "stackSize": 4, "total": 120 }, + { "calculated": 1, "name": "Rats", "realWeight": 16254.7705078125, "stackSize": 360, "total": 360 }, + { "calculated": 1, "name": "Scholar of the Seas", "realWeight": 2379.7265625, "stackSize": 100, "total": 100 }, + { + "calculated": 2.9200000762939453, + "name": "Hunter's Reward", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 78.84000396728516 + }, + { + "calculated": 2.930000066757202, + "name": "Rebirth", + "realWeight": 64.25262451171875, + "stackSize": 9, + "total": 26.3700008392334 + }, + { + "calculated": 1, + "name": "The Price of Protection", + "realWeight": 1161.755126953125, + "stackSize": 62, + "total": 62 + }, + { "calculated": 1, "name": "Boon of Justice", "realWeight": 8354.97265625, "stackSize": 231, "total": 231 }, + { "calculated": 1, "name": "The Summoner", "realWeight": 6036.65771484375, "stackSize": 186, "total": 186 }, + { "calculated": 1, "name": "The Warlord", "realWeight": 694.5541381835938, "stackSize": 44, "total": 44 }, + { "calculated": 1, "name": "Reckless Ambition", "realWeight": 315.4911193847656, "stackSize": 26, "total": 26 }, + { "calculated": 1, "name": "The Wolf's Legacy", "realWeight": 1514.867431640625, "stackSize": 74, "total": 74 }, + { "calculated": 20, "name": "The Artist", "realWeight": 53.84706497192383, "stackSize": 8, "total": 160 }, + { "calculated": 1, "name": "The Gentleman", "realWeight": 1189.9752197265625, "stackSize": 63, "total": 63 }, + { "calculated": 1, "name": "A Sea of Blue", "realWeight": 7712.4658203125, "stackSize": 219, "total": 219 }, + { "calculated": 29, "name": "The Strategist", "realWeight": 12.365421295166016, "stackSize": 3, "total": 87 }, + { "calculated": 1, "name": "The Lover", "realWeight": 66189.8046875, "stackSize": 918, "total": 918 }, + { "calculated": 5, "name": "A Stone Perfected", "realWeight": 181.73385620117188, "stackSize": 18, "total": 90 }, + { + "calculated": 110, + "name": "Doryani's Epiphany", + "realWeight": 152.30250549316406, + "stackSize": 16, + "total": 1760 + }, + { "calculated": 20, "name": "The Destination", "realWeight": 19.037813186645508, "stackSize": 4, "total": 80 }, + { "calculated": 4, "name": "Checkmate", "realWeight": 197.08677673339844, "stackSize": 19, "total": 76 }, + { "calculated": 5, "name": "Azyran's Reward", "realWeight": 410.74249267578125, "stackSize": 31, "total": 155 }, + { + "calculated": 2.130000114440918, + "name": "Etched in Blood", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 14.910000801086426 + }, + { + "calculated": 6.199999809265137, + "name": "The Eternal War", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 31 + }, + { + "calculated": 4.840000152587891, + "name": "The Emptiness", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 33.880001068115234 + }, + { "calculated": 2, "name": "The Soul", "realWeight": 297.4658203125, "stackSize": 25, "total": 50 }, + { "calculated": 2, "name": "The Wretched", "realWeight": 3365.75830078125, "stackSize": 126, "total": 252 }, + { "calculated": 1, "name": "The Arena Champion", "realWeight": 11935.1669921875, "stackSize": 293, "total": 293 }, + { "calculated": 40, "name": "The Enlightened", "realWeight": 44.07315444946289, "stackSize": 7, "total": 280 }, + { "calculated": 1, "name": "The Siren", "realWeight": 410.74249267578125, "stackSize": 31, "total": 31 }, + { + "calculated": 0.9700000286102295, + "name": "The King's Blade", + "realWeight": 41640.59765625, + "stackSize": 674, + "total": 653.780029296875 + }, + { "calculated": 5, "name": "Costly Curio", "realWeight": 371.64141845703125, "stackSize": 29, "total": 145 }, + { + "calculated": 1.4500000476837158, + "name": "From Bone to Ashes", + "realWeight": 124.65770721435547, + "stackSize": 14, + "total": 20.30000114440918 + }, + { + "calculated": 2.9600000381469727, + "name": "The Celestial Justicar", + "realWeight": 602.028564453125, + "stackSize": 40, + "total": 118.4000015258789 + }, + { "calculated": 2, "name": "Baited Expectations", "realWeight": 315.4911193847656, "stackSize": 26, "total": 52 }, + { "calculated": 15, "name": "The Astromancer", "realWeight": 2.3797266483306885, "stackSize": 1, "total": 15 }, + { + "calculated": 3.0199999809265137, + "name": "The Forgotten Treasure", + "realWeight": 315.4911193847656, + "stackSize": 26, + "total": 78.5199966430664 + }, + { "calculated": 2, "name": "Heterochromia", "realWeight": 1363.95703125, "stackSize": 69, "total": 138 }, + { + "calculated": 3.2300000190734863, + "name": "A Dab of Ink", + "realWeight": 451.12615966796875, + "stackSize": 33, + "total": 106.59000396728516 + }, + { "calculated": 1, "name": "The Garish Power", "realWeight": 4771.146484375, "stackSize": 159, "total": 159 }, + { "calculated": 1, "name": "The Journey", "realWeight": 694.5541381835938, "stackSize": 44, "total": 44 }, + { "calculated": 8, "name": "The Polymath", "realWeight": 152.30250549316406, "stackSize": 16, "total": 128 }, + { + "calculated": 8.359999656677246, + "name": "A Modest Request", + "realWeight": 152.30250549316406, + "stackSize": 16, + "total": 133.75999450683594 + }, + { + "calculated": 114.04000091552734, + "name": "The Price of Loyalty", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 456.1600036621094 + }, + { + "calculated": 1.2999999523162842, + "name": "The Conduit", + "realWeight": 624.7451782226562, + "stackSize": 41, + "total": 53.29999923706055 + }, + { "calculated": 3, "name": "The Dungeon Master", "realWeight": 352.5852355957031, "stackSize": 28, "total": 84 }, + { + "calculated": 5.039999961853027, + "name": "Duality", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 20.15999984741211 + }, + { "calculated": 1, "name": "The Fox", "realWeight": 1702.7939453125, "stackSize": 80, "total": 80 }, + { "calculated": 1, "name": "The Innocent", "realWeight": 1545.677734375, "stackSize": 75, "total": 75 }, + { + "calculated": 1.3899999856948853, + "name": "The Ethereal", + "realWeight": 557.445556640625, + "stackSize": 38, + "total": 52.81999969482422 + }, + { + "calculated": 3, + "name": "The Prince of Darkness", + "realWeight": 124.65770721435547, + "stackSize": 14, + "total": 42 + }, + { + "calculated": 1.090000033378601, + "name": "The Craving", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 29.43000030517578 + }, + { "calculated": 1, "name": "The Dragon", "realWeight": 6232.43017578125, "stackSize": 190, "total": 190 }, + { "calculated": 1, "name": "The Coming Storm", "realWeight": 1998.076416015625, "stackSize": 89, "total": 89 }, + { "calculated": 1, "name": "The Last One Standing", "realWeight": 892.3436279296875, "stackSize": 52, "total": 52 }, + { "calculated": 5, "name": "Desperate Crusade", "realWeight": 75.25357055664062, "stackSize": 10, "total": 50 }, + { "calculated": 1, "name": "The Valkyrie", "realWeight": 3405.90576171875, "stackSize": 127, "total": 127 }, + { "calculated": 1, "name": "The Watcher", "realWeight": 3167.416015625, "stackSize": 121, "total": 121 }, + { "calculated": 1, "name": "The Witch", "realWeight": 14395.7451171875, "stackSize": 332, "total": 332 }, + { "calculated": 1, "name": "Vinia's Token", "realWeight": 11209.5078125, "stackSize": 281, "total": 281 }, + { "calculated": 1, "name": "Lucky Deck", "realWeight": 197.08677673339844, "stackSize": 19, "total": 19 }, + { "calculated": 0, "name": "Vile Power", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 3, "name": "The Heroic Shot", "realWeight": 1218.4200439453125, "stackSize": 64, "total": 192 }, + { + "calculated": 1, + "name": "The Sword King's Salute", + "realWeight": 14136.3701171875, + "stackSize": 328, + "total": 328 + }, + { "calculated": 1, "name": "The Wolf's Shadow", "realWeight": 4284.69189453125, "stackSize": 148, "total": 148 }, + { + "calculated": 1.9299999475479126, + "name": "Triskaidekaphobia", + "realWeight": 1218.4200439453125, + "stackSize": 64, + "total": 123.5199966430664 + }, + { "calculated": 20, "name": "Home", "realWeight": 64.25262451171875, "stackSize": 9, "total": 180 }, + { "calculated": 1, "name": "Blind Venture", "realWeight": 2708.113037109375, "stackSize": 109, "total": 109 }, + { "calculated": 1, "name": "Prejudice", "realWeight": 1702.7939453125, "stackSize": 80, "total": 80 }, + { "calculated": 2, "name": "Emperor of Purity", "realWeight": 1423.687255859375, "stackSize": 71, "total": 142 }, + { "calculated": 1, "name": "Lysah's Respite", "realWeight": 1576.6942138671875, "stackSize": 76, "total": 76 }, + { + "calculated": 4.150000095367432, + "name": "The Bargain", + "realWeight": 229.01080322265625, + "stackSize": 21, + "total": 87.1500015258789 + }, + { "calculated": 1, "name": "Immortal Resolve", "realWeight": 694.5541381835938, "stackSize": 44, "total": 44 }, + { "calculated": 898.5, "name": "Love Through Ice", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "Glimmer of Hope", "realWeight": 9919.201171875, "stackSize": 259, "total": 259 }, + { + "calculated": 1.0499999523162842, + "name": "More is Never Enough", + "realWeight": 535.5864868164062, + "stackSize": 37, + "total": 38.849998474121094 + }, + { + "calculated": 2, + "name": "The Archmage's Right Hand", + "realWeight": 1423.687255859375, + "stackSize": 71, + "total": 142 + }, + { "calculated": 1, "name": "The Fathomless Depths", "realWeight": 1334.41357421875, "stackSize": 68, "total": 68 }, + { "calculated": 1, "name": "The Forsaken", "realWeight": 2134.28076171875, "stackSize": 93, "total": 93 }, + { "calculated": 10, "name": "Monochrome", "realWeight": 391.0290222167969, "stackSize": 30, "total": 300 }, + { "calculated": 1, "name": "The Harvester", "realWeight": 16052.0078125, "stackSize": 357, "total": 357 }, + { "calculated": 1, "name": "The Master Artisan", "realWeight": 7345.66064453125, "stackSize": 212, "total": 212 }, + { "calculated": 1, "name": "The Opulent", "realWeight": 11752.33203125, "stackSize": 290, "total": 290 }, + { + "calculated": 1.409999966621399, + "name": "The Road to Power", + "realWeight": 152.30250549316406, + "stackSize": 16, + "total": 22.559999465942383 + }, + { "calculated": 3, "name": "The Catch", "realWeight": 34.974693298339844, "stackSize": 6, "total": 18 }, + { "calculated": 1, "name": "Cameria's Cut", "realWeight": 694.5541381835938, "stackSize": 44, "total": 44 }, + { "calculated": 9, "name": "The Scout", "realWeight": 138.2496337890625, "stackSize": 15, "total": 135 }, + { "calculated": 1, "name": "Hunter's Resolve", "realWeight": 8031.578125, "stackSize": 225, "total": 225 }, + { + "calculated": 4.650000095367432, + "name": "Chasing Risk", + "realWeight": 297.4658203125, + "stackSize": 25, + "total": 116.25 + }, + { + "calculated": 956.0800170898438, + "name": "The Shieldbearer", + "realWeight": 12.365421295166016, + "stackSize": 3, + "total": 2868.239990234375 + }, + { "calculated": 1, "name": "The Standoff", "realWeight": 6781.4287109375, "stackSize": 201, "total": 201 }, + { + "calculated": 7.949999809265137, + "name": "The Vast", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 15.899999618530273 + }, + { "calculated": 1, "name": "The Explorer", "realWeight": 7449.853515625, "stackSize": 214, "total": 214 }, + { "calculated": 2, "name": "The Saint's Treasure", "realWeight": 1078.462646484375, "stackSize": 59, "total": 118 }, + { + "calculated": 6.449999809265137, + "name": "A Familiar Call", + "realWeight": 2.3797266483306885, + "stackSize": 1, + "total": 6.449999809265137 + }, + { + "calculated": 9.779999732971191, + "name": "The Chosen", + "realWeight": 229.01080322265625, + "stackSize": 21, + "total": 205.37998962402344 + }, + { + "calculated": 1.090000033378601, + "name": "The Unexpected Prize", + "realWeight": 471.78643798828125, + "stackSize": 34, + "total": 37.060001373291016 + }, + { "calculated": 4, "name": "The Seeker", "realWeight": 371.64141845703125, "stackSize": 29, "total": 116 }, + { "calculated": 1, "name": "The Wind", "realWeight": 410.74249267578125, "stackSize": 31, "total": 31 }, + { + "calculated": 1, + "name": "Three Faces in the Dark", + "realWeight": 22414.517578125, + "stackSize": 446, + "total": 446 + }, + { + "calculated": 4.440000057220459, + "name": "Underground Forest", + "realWeight": 1670.966552734375, + "stackSize": 79, + "total": 350.760009765625 + }, + { + "calculated": 0.41999998688697815, + "name": "Imperial Legacy", + "realWeight": 10440.69140625, + "stackSize": 268, + "total": 112.55999755859375 + }, + { "calculated": 1, "name": "Lingering Remnants", "realWeight": 1734.8209228515625, "stackSize": 81, "total": 81 }, + { "calculated": 1, "name": "Mitts", "realWeight": 6331.095703125, "stackSize": 192, "total": 192 }, + { "calculated": 1, "name": "Left to Fate", "realWeight": 2670.93115234375, "stackSize": 108, "total": 108 }, + { + "calculated": 359.3999938964844, + "name": "Seven Years Bad Luck", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 1797 + }, + { "calculated": 1, "name": "The Spoiled Prince", "realWeight": 410.74249267578125, "stackSize": 31, "total": 31 }, + { "calculated": 1, "name": "The Poet", "realWeight": 1453.870849609375, "stackSize": 72, "total": 72 }, + { "calculated": 4, "name": "Brotherhood in Exile", "realWeight": 212.8492431640625, "stackSize": 20, "total": 80 }, + { "calculated": 5, "name": "The Thaumaturgist", "realWeight": 166.80169677734375, "stackSize": 17, "total": 85 }, + { "calculated": 1, "name": "The Golden Era", "realWeight": 997.2616577148438, "stackSize": 56, "total": 56 }, + { "calculated": 1, "name": "The Deceiver", "realWeight": 1702.7939453125, "stackSize": 80, "total": 80 }, + { + "calculated": 0.7300000190734863, + "name": "Lantador's Lost Love", + "realWeight": 16731.1640625, + "stackSize": 367, + "total": 267.9100036621094 + }, + { "calculated": 1, "name": "The Fletcher", "realWeight": 1702.7939453125, "stackSize": 80, "total": 80 }, + { "calculated": 5, "name": "Keeper's Corruption", "realWeight": 12.365421295166016, "stackSize": 3, "total": 15 }, + { "calculated": 5, "name": "The Shortcut", "realWeight": 98.92337036132812, "stackSize": 12, "total": 60 }, + { "calculated": 30, "name": "Deadly Joy", "realWeight": 19.037813186645508, "stackSize": 4, "total": 120 }, + { "calculated": 1, "name": "Doedre's Madness", "realWeight": 11996.3212890625, "stackSize": 294, "total": 294 }, + { "calculated": 7, "name": "Something Dark", "realWeight": 315.4911193847656, "stackSize": 26, "total": 182 }, + { + "calculated": 1.6699999570846558, + "name": "Sambodhi's Vow", + "realWeight": 4112.16796875, + "stackSize": 144, + "total": 240.47999572753906 + }, + { "calculated": 5, "name": "Abandoned Wealth", "realWeight": 430.7765197753906, "stackSize": 32, "total": 160 }, + { "calculated": 1, "name": "The Army of Blood", "realWeight": 7607.05712890625, "stackSize": 217, "total": 217 }, + { "calculated": 1, "name": "The Formless Sea", "realWeight": 2065.804443359375, "stackSize": 91, "total": 91 }, + { "calculated": 5, "name": "Bijoux", "realWeight": 152.30250549316406, "stackSize": 16, "total": 80 }, + { "calculated": 1, "name": "Jack in the Box", "realWeight": 4371.8369140625, "stackSize": 150, "total": 150 }, + { "calculated": 10482.490234375, "name": "The Apothecary", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "The Carrion Crow", "realWeight": 19973.40625, "stackSize": 413, "total": 413 }, + { + "calculated": 2.180000066757202, + "name": "The Deep Ones", + "realWeight": 152.30250549316406, + "stackSize": 16, + "total": 34.880001068115234 + }, + { "calculated": 35, "name": "The Hook", "realWeight": 12.365421295166016, "stackSize": 3, "total": 105 }, + { "calculated": 1, "name": "The Jeweller's Boon", "realWeight": 3167.416015625, "stackSize": 121, "total": 121 }, + { + "calculated": 1.7400000095367432, + "name": "The Primordial", + "realWeight": 816.2462158203125, + "stackSize": 49, + "total": 85.26000213623047 + }, + { "calculated": 5, "name": "Judging Voices", "realWeight": 181.73385620117188, "stackSize": 18, "total": 90 }, + { "calculated": 1, "name": "The Sun", "realWeight": 11510.021484375, "stackSize": 286, "total": 286 }, + { "calculated": 1, "name": "Three Voices", "realWeight": 9690.3017578125, "stackSize": 255, "total": 255 }, + { "calculated": 1, "name": "Dialla's Subjugation", "realWeight": 1514.867431640625, "stackSize": 74, "total": 74 }, + { "calculated": 3, "name": "The Bitter Blossom", "realWeight": 98.92337036132812, "stackSize": 12, "total": 36 }, + { "calculated": 1, "name": "Demigod's Wager", "realWeight": 718.3661499023438, "stackSize": 45, "total": 45 }, + { "calculated": 1, "name": "Humility", "realWeight": 10911.65625, "stackSize": 276, "total": 276 }, + { "calculated": 2, "name": "The Blessing of Moosh", "realWeight": 2379.7265625, "stackSize": 100, "total": 200 }, + { "calculated": 4, "name": "Perfection", "realWeight": 12.365421295166016, "stackSize": 3, "total": 12 }, + { + "calculated": 3.109999895095825, + "name": "The Avenger", + "realWeight": 181.73385620117188, + "stackSize": 18, + "total": 55.97999954223633 + }, + { + "calculated": 0.9599999785423279, + "name": "The Chains that Bind", + "realWeight": 8518.259765625, + "stackSize": 234, + "total": 224.63999938964844 + }, + { "calculated": 1, "name": "The Deal", "realWeight": 997.2616577148438, "stackSize": 56, "total": 56 }, + { + "calculated": 1347.75, + "name": "The Immortal", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 6738.75 + }, + { "calculated": 1, "name": "The Cache", "realWeight": 6580.00830078125, "stackSize": 197, "total": 197 }, + { + "calculated": 0.36000001430511475, + "name": "Further Invention", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 0.7200000286102295 + }, + { "calculated": 1, "name": "The Rabid Rhoa", "realWeight": 5043.744140625, "stackSize": 165, "total": 165 }, + { + "calculated": 3.390000104904175, + "name": "Prometheus' Armoury", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 6.78000020980835 + }, + { + "calculated": 5.989999771118164, + "name": "Remembrance", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 29.94999885559082 + }, + { "calculated": 1, "name": "The Penitent", "realWeight": 5414.97216796875, "stackSize": 173, "total": 173 }, + { "calculated": 1, "name": "The Pack Leader", "realWeight": 1607.915283203125, "stackSize": 77, "total": 77 }, + { "calculated": 1, "name": "The Card Sharp", "realWeight": 866.72705078125, "stackSize": 51, "total": 51 }, + { "calculated": 1, "name": "Last Hope", "realWeight": 5321.3427734375, "stackSize": 171, "total": 171 }, + { "calculated": 1, "name": "The Bear Woman", "realWeight": 535.5864868164062, "stackSize": 37, "total": 37 }, + { "calculated": 2, "name": "Merciless Armament", "realWeight": 166.80169677734375, "stackSize": 17, "total": 34 }, + { + "calculated": 2.2699999809265137, + "name": "The Brawny Battle Mage", + "realWeight": 166.80169677734375, + "stackSize": 17, + "total": 38.59000015258789 + }, + { "calculated": 127, "name": "The Sephirot", "realWeight": 297.4658203125, "stackSize": 25, "total": 3175 }, + { "calculated": 3, "name": "The Forward Gaze", "realWeight": 718.3661499023438, "stackSize": 45, "total": 135 }, + { "calculated": 1, "name": "The Cataclysm", "realWeight": 1964.4957275390625, "stackSize": 88, "total": 88 }, + { "calculated": 20, "name": "Imperfect Memories", "realWeight": 19.037813186645508, "stackSize": 4, "total": 80 }, + { + "calculated": 1, + "name": "Alone in the Darkness", + "realWeight": 6036.65771484375, + "stackSize": 186, + "total": 186 + }, + { "calculated": 1, "name": "The Hermit", "realWeight": 14330.7548828125, "stackSize": 331, "total": 331 }, + { "calculated": 1, "name": "The Long Watch", "realWeight": 1334.41357421875, "stackSize": 68, "total": 68 }, + { "calculated": 1, "name": "Call to the First Ones", "realWeight": 1334.41357421875, "stackSize": 68, "total": 68 }, + { + "calculated": 4.570000171661377, + "name": "The Dreamer", + "realWeight": 124.65770721435547, + "stackSize": 14, + "total": 63.980003356933594 + }, + { "calculated": 1, "name": "The Inoculated", "realWeight": 7087.3291015625, "stackSize": 207, "total": 207 }, + { "calculated": 17, "name": "Gemcutter's Mercy", "realWeight": 111.54295349121094, "stackSize": 13, "total": 221 }, + { "calculated": 2, "name": "The Bones", "realWeight": 514.02099609375, "stackSize": 36, "total": 72 }, + { + "calculated": 2.309999942779541, + "name": "The Jester", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 62.369998931884766 + }, + { + "calculated": 1.1399999856948853, + "name": "The Lich", + "realWeight": 3984.333984375, + "stackSize": 141, + "total": 160.74000549316406 + }, + { "calculated": 1, "name": "Astral Protection", "realWeight": 492.7528381347656, "stackSize": 35, "total": 35 }, + { + "calculated": 6.349999904632568, + "name": "Fateful Meeting", + "realWeight": 12.365421295166016, + "stackSize": 3, + "total": 19.049999237060547 + }, + { "calculated": 50, "name": "The Samurai's Eye", "realWeight": 86.81926727294922, "stackSize": 11, "total": 550 }, + { + "calculated": 1.909999966621399, + "name": "The Spark and the Flame", + "realWeight": 579.5941772460938, + "stackSize": 39, + "total": 74.48999786376953 + }, + { "calculated": 1, "name": "Destined to Crumble", "realWeight": 49172.19140625, "stackSize": 753, "total": 753 }, + { "calculated": 25, "name": "Beauty Through Death", "realWeight": 12.365421295166016, "stackSize": 3, "total": 75 }, + { "calculated": 1, "name": "The Survivalist", "realWeight": 5274.732421875, "stackSize": 170, "total": 170 }, + { + "calculated": 4.139999866485596, + "name": "The Throne", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 53.81999969482422 + }, + { + "calculated": 1.0299999713897705, + "name": "Endless Night", + "realWeight": 297.4658203125, + "stackSize": 25, + "total": 25.75 + }, + { "calculated": 2, "name": "Azure Rage", "realWeight": 2670.93115234375, "stackSize": 108, "total": 216 }, + { "calculated": 1, "name": "The Undaunted", "realWeight": 892.3436279296875, "stackSize": 52, "total": 52 }, + { "calculated": 1, "name": "Thunderous Skies", "realWeight": 9576.5224609375, "stackSize": 253, "total": 253 }, + { + "calculated": 4.099999904632568, + "name": "The World Eater", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 20.5 + }, + { "calculated": 1, "name": "The Scholar", "realWeight": 44262.1796875, "stackSize": 702, "total": 702 }, + { + "calculated": 1.2899999618530273, + "name": "The Traitor", + "realWeight": 866.72705078125, + "stackSize": 51, + "total": 65.79000091552734 + }, + { "calculated": 3, "name": "The Void", "realWeight": 9633.3564453125, "stackSize": 254, "total": 762 }, + { "calculated": 4, "name": "The Cursed King", "realWeight": 471.78643798828125, "stackSize": 34, "total": 136 }, + { "calculated": 1, "name": "The Puzzle", "realWeight": 5414.97216796875, "stackSize": 173, "total": 173 }, + { "calculated": 1, "name": "The Realm", "realWeight": 333.86639404296875, "stackSize": 27, "total": 27 }, + { "calculated": 1, "name": "Dark Temptation", "realWeight": 9463.193359375, "stackSize": 251, "total": 251 }, + { "calculated": 15, "name": "Magnum Opus", "realWeight": 64.25262451171875, "stackSize": 9, "total": 135 }, + { + "calculated": 1.690000057220459, + "name": "The Twilight Moon", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 45.630001068115234 + }, + { "calculated": 45, "name": "Luminous Trove", "realWeight": 34.974693298339844, "stackSize": 6, "total": 270 }, + { + "calculated": 1.0099999904632568, + "name": "The Landing", + "realWeight": 742.4442749023438, + "stackSize": 46, + "total": 46.459999084472656 + }, + { "calculated": 1, "name": "The Ruthless Ceinture", "realWeight": 2415.51171875, "stackSize": 101, "total": 101 }, + { + "calculated": 1.9500000476837158, + "name": "Acclimatisation", + "realWeight": 3167.416015625, + "stackSize": 121, + "total": 235.95001220703125 + }, + { "calculated": 10, "name": "Alluring Bounty", "realWeight": 111.54295349121094, "stackSize": 13, "total": 130 }, + { "calculated": 1, "name": "The Surveyor", "realWeight": 3089.210693359375, "stackSize": 119, "total": 119 }, + { "calculated": 1, "name": "The Web", "realWeight": 8031.578125, "stackSize": 225, "total": 225 }, + { "calculated": 3, "name": "The Insatiable", "realWeight": 944.3167114257812, "stackSize": 54, "total": 162 }, + { "calculated": 0, "name": "Luck of the Vaal", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 7.110000133514404, + "name": "Nook's Crown", + "realWeight": 2.3797266483306885, + "stackSize": 1, + "total": 7.110000133514404 + }, + { + "calculated": 0.9900000095367432, + "name": "The Flora's Gift", + "realWeight": 28708.181640625, + "stackSize": 526, + "total": 520.739990234375 + }, + { + "calculated": 1, + "name": "The Drunken Aristocrat", + "realWeight": 2273.446044921875, + "stackSize": 97, + "total": 97 + }, + { "calculated": 1, "name": "Coveted Possession", "realWeight": 3365.75830078125, "stackSize": 126, "total": 126 }, + { "calculated": 1, "name": "Loyalty", "realWeight": 31874.671875, "stackSize": 564, "total": 564 }, + { + "calculated": 2822.47998046875, + "name": "The Demon", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 5644.9599609375 + }, + { + "calculated": 14.789999961853027, + "name": "The Leviathan", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 29.579999923706055 + }, + { "calculated": 10, "name": "The Mind's Eyes", "realWeight": 197.08677673339844, "stackSize": 19, "total": 190 }, + { + "calculated": 2.009999990463257, + "name": "The Offspring", + "realWeight": 262.4936828613281, + "stackSize": 23, + "total": 46.22999954223633 + }, + { + "calculated": 5658.89990234375, + "name": "Unrequited Love", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 11317.7998046875 + }, + { "calculated": 1, "name": "Prosperity", "realWeight": 11874.1162109375, "stackSize": 292, "total": 292 }, + { "calculated": 1, "name": "Shard of Fate", "realWeight": 5603.85595703125, "stackSize": 177, "total": 177 }, + { "calculated": 1, "name": "Treasure Hunter", "realWeight": 816.2462158203125, "stackSize": 49, "total": 49 }, + { + "calculated": 17.920000076293945, + "name": "The Old Man", + "realWeight": 2.3797266483306885, + "stackSize": 1, + "total": 17.920000076293945 + }, + { + "calculated": 7.960000038146973, + "name": "Draped in Dreams", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 39.79999923706055 + }, + { + "calculated": 1.6100000143051147, + "name": "The Wilted Rose", + "realWeight": 2415.51171875, + "stackSize": 101, + "total": 162.61000061035156 + }, + { "calculated": 1, "name": "The Battle Born", "realWeight": 5043.744140625, "stackSize": 165, "total": 165 }, + { "calculated": 1, "name": "Rain of Chaos", "realWeight": 121465.9921875, "stackSize": 1376, "total": 1376 }, + { "calculated": 3.25, "name": "Dying Anguish", "realWeight": 1305.08642578125, "stackSize": 67, "total": 217.75 }, + { "calculated": 3, "name": "Peaceful Moments", "realWeight": 197.08677673339844, "stackSize": 19, "total": 57 }, + { + "calculated": 3.7300000190734863, + "name": "The Life Thief", + "realWeight": 75.25357055664062, + "stackSize": 10, + "total": 37.29999923706055 + }, + { + "calculated": 1.0299999713897705, + "name": "Echoes of Love", + "realWeight": 492.7528381347656, + "stackSize": 35, + "total": 36.04999923706055 + }, + { + "calculated": 2.2799999713897705, + "name": "Terrible Secret of Space", + "realWeight": 212.8492431640625, + "stackSize": 20, + "total": 45.599998474121094 + }, + { + "calculated": 1.8300000429153442, + "name": "The Incantation", + "realWeight": 1189.9752197265625, + "stackSize": 63, + "total": 115.29000091552734 + }, + { "calculated": 1, "name": "The Rite of Elements", "realWeight": 1305.08642578125, "stackSize": 67, "total": 67 }, + { "calculated": 1, "name": "The Darkest Dream", "realWeight": 297.4658203125, "stackSize": 25, "total": 25 }, + { "calculated": 1, "name": "The Scavenger", "realWeight": 2203.496826171875, "stackSize": 95, "total": 95 }, + { "calculated": 1, "name": "Harmony of Souls", "realWeight": 138.2496337890625, "stackSize": 15, "total": 15 }, + { + "calculated": 4.579999923706055, + "name": "The Enforcer", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 22.899999618530273 + }, + { + "calculated": 2.759999990463257, + "name": "Arrogance of the Vaal", + "realWeight": 694.5541381835938, + "stackSize": 44, + "total": 121.44000244140625 + }, + { + "calculated": 4.190000057220459, + "name": "The Pact", + "realWeight": 297.4658203125, + "stackSize": 25, + "total": 104.75 + }, + { "calculated": 1, "name": "The Wrath", "realWeight": 8085.18115234375, "stackSize": 226, "total": 226 }, + { "calculated": 0, "name": "The Mad King", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 9, + "name": "Pride of the First Ones", + "realWeight": 138.2496337890625, + "stackSize": 15, + "total": 135 + }, + { "calculated": 1, "name": "Cursed Words", "realWeight": 3206.7626953125, "stackSize": 122, "total": 122 }, + { "calculated": 2, "name": "The Dapper Prodigy", "realWeight": 2238.38037109375, "stackSize": 96, "total": 192 }, + { + "calculated": 2.7899999618530273, + "name": "Dark Dreams", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 19.529998779296875 + }, + { + "calculated": 3.9800000190734863, + "name": "Dementophobia", + "realWeight": 64.25262451171875, + "stackSize": 9, + "total": 35.81999969482422 + }, + { + "calculated": 1, + "name": "The Fox in the Brambles", + "realWeight": 557.445556640625, + "stackSize": 38, + "total": 38 + }, + { + "calculated": 1.600000023841858, + "name": "The Hunger", + "realWeight": 514.02099609375, + "stackSize": 36, + "total": 57.60000228881836 + }, + { "calculated": 1, "name": "The Oath", "realWeight": 1607.915283203125, "stackSize": 77, "total": 77 }, + { "calculated": 1, "name": "The Porcupine", "realWeight": 3609.00927734375, "stackSize": 132, "total": 132 }, + { "calculated": 1, "name": "Vanity", "realWeight": 2523.928955078125, "stackSize": 104, "total": 104 }, + { + "calculated": 117.26000213623047, + "name": "Desecrated Virtue", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 820.8200073242188 + }, + { + "calculated": 22.979999542236328, + "name": "Darker Half", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 160.86000061035156 + }, + { "calculated": 1, "name": "The Journalist", "realWeight": 11935.1669921875, "stackSize": 293, "total": 293 }, + { "calculated": 1, "name": "The Risk", "realWeight": 5509.14453125, "stackSize": 175, "total": 175 }, + { "calculated": 0, "name": "A Note in the Wind", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "Anarchy's Price", "realWeight": 742.4442749023438, "stackSize": 46, "total": 46 }, + { "calculated": 13178, "name": "House of Mirrors", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 0, "name": "Akil's Prophecy", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 2, + "name": "Pride Before the Fall", + "realWeight": 124.65770721435547, + "stackSize": 14, + "total": 28 + }, + { "calculated": 13, "name": "The Aspirant", "realWeight": 19.037813186645508, "stackSize": 4, "total": 52 }, + { "calculated": 1, "name": "Earth Drinker", "realWeight": 1189.9752197265625, "stackSize": 63, "total": 63 }, + { + "calculated": 1.9199999570846558, + "name": "The Queen", + "realWeight": 86.81926727294922, + "stackSize": 11, + "total": 21.119998931884766 + }, + { "calculated": 1, "name": "The Master", "realWeight": 816.2462158203125, "stackSize": 49, "total": 49 }, + { + "calculated": 518.6099853515625, + "name": "Choking Guilt", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 1037.219970703125 + }, + { + "calculated": 15.319999694824219, + "name": "The Academic", + "realWeight": 197.08677673339844, + "stackSize": 19, + "total": 291.0799865722656 + }, + { "calculated": 15, "name": "Winter's Embrace", "realWeight": 26.606155395507812, "stackSize": 5, "total": 75 }, + { "calculated": 1, "name": "The Hoarder", "realWeight": 2560.419189453125, "stackSize": 105, "total": 105 }, + { "calculated": 1, "name": "Gemcutter's Promise", "realWeight": 6480.0595703125, "stackSize": 195, "total": 195 }, + { "calculated": 1, "name": "The Tinkerer's Table", "realWeight": 245.5619659423828, "stackSize": 22, "total": 22 }, + { "calculated": 2.380000114440918, "name": "The Awakened", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 64.62000274658203, + "name": "Brother's Stash", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 323.1000061035156 + }, + { + "calculated": 1.4500000476837158, + "name": "Light and Truth", + "realWeight": 451.12615966796875, + "stackSize": 33, + "total": 47.85000228881836 + }, + { "calculated": 1, "name": "Time-Lost Relic", "realWeight": 6232.43017578125, "stackSize": 190, "total": 190 }, + { "calculated": 2, "name": "Boon of the First Ones", "realWeight": 557.445556640625, "stackSize": 38, "total": 76 }, + { "calculated": 1, "name": "The Catalyst", "realWeight": 22716.732421875, "stackSize": 450, "total": 450 }, + { "calculated": 1, "name": "Thirst for Knowledge", "realWeight": 6529.9697265625, "stackSize": 196, "total": 196 }, + { + "calculated": 5.840000152587891, + "name": "Void of the Elements", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 11.680000305175781 + }, + { "calculated": 1, "name": "Her Mask", "realWeight": 8792.7333984375, "stackSize": 239, "total": 239 }, + { "calculated": 5, "name": "The Tumbleweed", "realWeight": 75.25357055664062, "stackSize": 10, "total": 50 }, + { "calculated": 3, "name": "Council of Cats", "realWeight": 152.30250549316406, "stackSize": 16, "total": 48 }, + { + "calculated": 1.9600000381469727, + "name": "The Enthusiasts", + "realWeight": 371.64141845703125, + "stackSize": 29, + "total": 56.84000015258789 + }, + { "calculated": 1, "name": "The Gladiator", "realWeight": 5414.97216796875, "stackSize": 173, "total": 173 }, + { "calculated": 3, "name": "Divine Justice", "realWeight": 229.01080322265625, "stackSize": 21, "total": 63 }, + { + "calculated": 44, + "name": "A Fate Worse Than Death", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 308 + }, + { "calculated": 16, "name": "The Damned", "realWeight": 26.606155395507812, "stackSize": 5, "total": 80 }, + { "calculated": 1, "name": "The Trial", "realWeight": 5842.97705078125, "stackSize": 182, "total": 182 }, + { "calculated": 9, "name": "The Long Con", "realWeight": 86.81926727294922, "stackSize": 11, "total": 99 }, + { "calculated": 3, "name": "Justified Ambition", "realWeight": 471.78643798828125, "stackSize": 34, "total": 102 }, + { "calculated": 0, "name": "The Valley of Steel Boxes", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "The Endurance", "realWeight": 6036.65771484375, "stackSize": 186, "total": 186 }, + { "calculated": 0, "name": "Treasures of the Vaal", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 2, "name": "Unchained", "realWeight": 352.5852355957031, "stackSize": 28, "total": 56 }, + { + "calculated": 1, + "name": "Gift of the Gemling Queen", + "realWeight": 1702.7939453125, + "stackSize": 80, + "total": 80 + }, + { "calculated": 1, "name": "Hubris", "realWeight": 5368.08935546875, "stackSize": 172, "total": 172 }, + { "calculated": 1, "name": "The Feast", "realWeight": 2415.51171875, "stackSize": 101, "total": 101 }, + { "calculated": 1, "name": "Volatile Power", "realWeight": 5891.19921875, "stackSize": 183, "total": 183 }, + { "calculated": 1, "name": "Emperor's Luck", "realWeight": 45306.58984375, "stackSize": 713, "total": 713 }, + { "calculated": 1, "name": "Struck by Lightning", "realWeight": 4816.228515625, "stackSize": 160, "total": 160 }, + { "calculated": 1, "name": "The Mercenary", "realWeight": 1832.08642578125, "stackSize": 84, "total": 84 }, + { "calculated": 1, "name": "The Wolverine", "realWeight": 1484.2645263671875, "stackSize": 73, "total": 73 }, + { "calculated": 1, "name": "Hope", "realWeight": 2065.804443359375, "stackSize": 91, "total": 91 }, + { + "calculated": 1, + "name": "The Encroaching Darkness", + "realWeight": 892.3436279296875, + "stackSize": 52, + "total": 52 + }, + { "calculated": 3, "name": "Guardian's Challenge", "realWeight": 816.2462158203125, "stackSize": 49, "total": 147 }, + { "calculated": 1, "name": "The Aesthete", "realWeight": 6430.2763671875, "stackSize": 194, "total": 194 }, + { "calculated": 2, "name": "The Easy Stroll", "realWeight": 1702.7939453125, "stackSize": 80, "total": 160 }, + { "calculated": 2, "name": "The Endless Darkness", "realWeight": 64.25262451171875, "stackSize": 9, "total": 18 }, + { "calculated": 1347.75, "name": "The Fiend", "realWeight": 6.7308831214904785, "stackSize": 2, "total": 2695.5 }, + { + "calculated": 1.8600000143051147, + "name": "The Lord of Celebration", + "realWeight": 579.5941772460938, + "stackSize": 39, + "total": 72.54000091552734 + }, + { "calculated": 1, "name": "The Lion", "realWeight": 4503.64599609375, "stackSize": 153, "total": 153 }, + { "calculated": 10, "name": "The Sacrifice", "realWeight": 34.974693298339844, "stackSize": 6, "total": 60 }, + { + "calculated": 3.119999885559082, + "name": "The Side Quest", + "realWeight": 624.7451782226562, + "stackSize": 41, + "total": 127.91999816894531 + }, + { "calculated": 1, "name": "The Sigil", "realWeight": 7241.958984375, "stackSize": 210, "total": 210 }, + { "calculated": 1, "name": "The Betrayal", "realWeight": 2820.681884765625, "stackSize": 112, "total": 112 }, + { "calculated": 5.75, "name": "The Sustenance", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "The Union", "realWeight": 4198.13427734375, "stackSize": 146, "total": 146 }, + { "calculated": 1, "name": "The One With All", "realWeight": 2415.51171875, "stackSize": 101, "total": 101 }, + { "calculated": 5, "name": "The White Knight", "realWeight": 26.606155395507812, "stackSize": 5, "total": 25 }, + { + "calculated": 2.190000057220459, + "name": "Bowyer's Dream", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 28.470001220703125 + }, + { "calculated": 1, "name": "The Demoness", "realWeight": 8682.595703125, "stackSize": 237, "total": 237 }, + { "calculated": 1, "name": "Buried Treasure", "realWeight": 1024.0928955078125, "stackSize": 57, "total": 57 }, + { "calculated": 10, "name": "Gift of Asenath", "realWeight": 98.92337036132812, "stackSize": 12, "total": 120 }, + { "calculated": 5870.2001953125, "name": "The Price of Devotion", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 149.6999969482422, + "name": "Wealth and Power", + "realWeight": 12.365421295166016, + "stackSize": 3, + "total": 449.0999755859375 + }, + { "calculated": 4, "name": "Ambitious Obsession", "realWeight": 53.84706497192383, "stackSize": 8, "total": 32 }, + { + "calculated": 2.9800000190734863, + "name": "The Cacophony", + "realWeight": 197.08677673339844, + "stackSize": 19, + "total": 56.619998931884766 + }, + { + "calculated": 2.6500000953674316, + "name": "Atziri's Arsenal", + "realWeight": 1423.687255859375, + "stackSize": 71, + "total": 188.15000915527344 + }, + { "calculated": 1, "name": "Assassin's Favour", "realWeight": 8246.7021484375, "stackSize": 229, "total": 229 }, + { + "calculated": 222.86000061035156, + "name": "The Cheater", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 445.7200012207031 + }, + { + "calculated": 3, + "name": "Brush, Paint and Palette", + "realWeight": 410.74249267578125, + "stackSize": 31, + "total": 93 + }, + { "calculated": 3, "name": "The Professor", "realWeight": 352.5852355957031, "stackSize": 28, "total": 84 }, + { "calculated": 1, "name": "The Fool", "realWeight": 2451.474365234375, "stackSize": 102, "total": 102 }, + { "calculated": 1, "name": "The Metalsmith's Gift", "realWeight": 31536.181640625, "stackSize": 560, "total": 560 }, + { + "calculated": 34.349998474121094, + "name": "The Gulf", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 171.75 + } +] diff --git a/src/components/FileCard/FileCard.story.vue b/src/components/FileCard/FileCard.story.vue new file mode 100644 index 00000000..460bbf1f --- /dev/null +++ b/src/components/FileCard/FileCard.story.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/FileCard/FileCard.vue b/src/components/FileCard/FileCard.vue new file mode 100644 index 00000000..add2ed46 --- /dev/null +++ b/src/components/FileCard/FileCard.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/components/FileCard/FixedIcon.vue b/src/components/FileCard/FixedIcon.vue new file mode 100644 index 00000000..725a250c --- /dev/null +++ b/src/components/FileCard/FixedIcon.vue @@ -0,0 +1,23 @@ + + + + diff --git a/src/components/FileCard/dummy.ts b/src/components/FileCard/dummy.ts new file mode 100644 index 00000000..3ac63b48 --- /dev/null +++ b/src/components/FileCard/dummy.ts @@ -0,0 +1,5 @@ +import { Contents } from '../../types'; + +import fileCardPropsJson from './fileCardProps.json' assert { type: 'json' }; + +export const fileCardProps: Contents = fileCardPropsJson; diff --git a/src/components/FileCard/fileCardProps.json b/src/components/FileCard/fileCardProps.json new file mode 100644 index 00000000..6bf75a60 --- /dev/null +++ b/src/components/FileCard/fileCardProps.json @@ -0,0 +1,1543 @@ +{ + "fixedNames": {}, + "notCards": [], + "id": "b703a5bf-9a01-40f2-91b5-41498847aeea", + "fileContent": { + "text": "stackSize,name,calculated,total\n17,Merciless Armament,1.99,33.83\n173,The Penitent,1.0,173.0\n36,The Bones,1.0,36.0\n29,The Enthusiasts,2.0,58.0\n0,The Greatest Intentions,12.44,0.0\n6,The Sacrifice,20.0,120.0\n15,Pride of the First Ones,8.0,120.0\n51,The Traitor,2.0,102.0\n132,The Porcupine,1.88,248.16\n3,Beauty Through Death,13.61,40.829998\n21,Divine Justice,2.0,42.0\n16,The Road to Power,3.0,48.0\n153,The Surgeon,1.0,153.0\n91,The Formless Sea,1.26,114.659996\n293,The Journalist,1.0,293.0\n165,The Rabid Rhoa,1.0,165.0\n47,Sambodhi's Wisdom,1.0,47.0\n5,The Progeny of Lunaris,5.0,25.0\n2,Choking Guilt,428.09,856.18\n4,The Aspirant,10.0,40.0\n5,The Eternal War,6.22,31.099998\n88,Forbidden Power,1.0,88.0\n1376,Rain of Chaos,1.0,1376.0\n108,Azure Rage,1.0,108.0\n31,The Spoiled Prince,1.37,42.47\n450,The Catalyst,1.0,450.0\n212,The Master Artisan,1.0,212.0\n69,Death,2.0,138.0\n281,Vinia's Token,1.37,384.97\n19,Peaceful Moments,3.0,57.0\n46,The Landing,2.0,92.0\n49,The Primordial,1.0,49.0\n0,The Sustenance,6.0,0.0\n254,The Void,2.0,508.0\n56,The Deal,2.0,112.0\n127,The Valkyrie,2.0,254.0\n5,Altered Perception,10.0,50.0\n186,The Endurance,1.0,186.0\n121,The Jeweller's Boon,1.0,121.0\n220,The Adventuring Spirit,1.0,220.0\n1,A Familiar Call,7.0,7.0\n25,Haunting Shadows,4.28,107.00001\n237,The Demoness,1.0,237.0\n77,The Oath,1.0,77.0\n31,The Siren,2.0,62.0\n39,The Spark and the Flame,1.61,62.79\n51,The Card Sharp,2.0,102.0\n5,The White Knight,3.99,19.95\n2,Unrequited Love,5307.75,10615.5\n195,Gemcutter's Promise,1.0,195.0\n0,Love Through Ice,933.76,0.0\n146,The Union,1.0,146.0\n219,A Sea of Blue,2.0,438.0\n69,Heterochromia,1.0,69.0\n172,Hubris,1.0,172.0\n0,The Awakened,5.0,0.0\n121,The Watcher,1.0,121.0\n170,The Wolf,1.0,170.0\n2,The Fiend,1743.98,3487.96\n3,Wealth and Power,181.98,545.94\n1,The Astromancer,15.0,15.0\n35,Echoes of Love,2.0,70.0\n5,The Rabbit's Foot,7.0,35.0\n33,Lachrymal Necrosis,2.69,88.770004\n17,The Thaumaturgist,5.0,85.0\n31,The Wind,1.0,31.0\n9,Rebirth,3.0,27.0\n4,Succor of the Sinless,150.0,600.0\n13,Gemcutter's Mercy,17.24,224.12\n13,The Throne,4.0,52.0\n5,Draped in Dreams,5.0,25.0\n674,The King's Blade,1.0,674.0\n19,The Shepherd's Sandals,3.0,57.0\n30,Deathly Designs,3.0,90.0\n3,The Shieldbearer,758.25,2274.75\n268,Imperial Legacy,0.44,117.92\n293,The Arena Champion,1.0,293.0\n76,The Admirer,1.0,76.0\n27,The Jester,2.0,54.0\n32,Abandoned Wealth,5.0,160.0\n109,Blind Venture,1.0,109.0\n31,Azyran's Reward,4.0,124.0\n57,Buried Treasure,1.0,57.0\n234,The Chains that Bind,1.0,234.0\n10,The Life Thief,1.2,12.0\n183,The Tower,1.0,183.0\n80,The Easy Stroll,2.0,160.0\n52,The Encroaching Darkness,1.0,52.0\n0,The Apothecary,9553.95,0.0\n5,Remembrance,10.0,50.0\n331,The Hermit,1.0,331.0\n229,Assassin's Favour,1.0,229.0\n148,The Wolf's Shadow,1.0,148.0\n39,The Lord of Celebration,2.0,78.0\n2,The Demon,2858.14,5716.28\n16,Bijoux,5.0,80.0\n67,Dying Anguish,1.0,67.0\n27,The Craving,2.0,54.0\n28,Disdain,2.0,56.0\n9,Lethean Temptation,5.0,45.0\n15,Harmony of Souls,2.09,31.349998\n328,The Sword King's Salute,1.0,328.0\n446,Three Faces in the Dark,1.0,446.0\n0,The Iron Bard,0.0,0.0\n136,The Calling,1.0,136.0\n27,The Realm,1.0,27.0\n231,Boon of Justice,1.0,231.0\n5,Winter's Embrace,15.0,75.0\n278,Rain Tempter,1.0,278.0\n7,Dark Dreams,3.0,21.0\n0,Vile Power,0.0,0.0\n2,The Vast,9.25,18.5\n80,The Fox,1.0,80.0\n26,Baited Expectations,1.03,26.779999\n5,The Eye of Terror,8.0,40.0\n41,The Conduit,3.78,154.98\n33,Light and Truth,1.97,65.01\n28,The Professor,3.0,84.0\n125,Society's Remorse,1.0,125.0\n210,The Sigil,1.0,210.0\n255,The Warden,1.0,255.0\n412,The Gemcutter,1.0,412.0\n13,Bowyer's Dream,2.0,26.0\n16,Doryani's Epiphany,107.97,1727.52\n198,Lucky Connections,1.0,198.0\n5,The Gulf,25.0,125.0\n240,Turn the Other Cheek,1.0,240.0\n5,The World Eater,3.73,18.65\n0,Friendship,0.0,0.0\n80,The Deceiver,1.0,80.0\n11,The Queen,2.0,22.0\n165,The Battle Born,1.0,165.0\n175,The Inventor,1.97,344.75\n7,A Fate Worse Than Death,45.0,315.0\n101,The One With All,1.0,101.0\n101,The Wilted Rose,1.96,197.96\n95,The Scavenger,1.0,95.0\n14,Pride Before the Fall,2.0,28.0\n253,Thunderous Skies,1.0,253.0\n190,Time-Lost Relic,1.0,190.0\n276,Humility,1.0,276.0\n112,The Betrayal,1.17,131.04\n19,The Cacophony,2.0,38.0\n126,Coveted Possession,1.0,126.0\n108,Left to Fate,1.65,178.2\n25,Chasing Risk,4.0,100.0\n292,Prosperity,1.0,292.0\n49,Treasure Hunter,1.0,49.0\n40,The Celestial Justicar,1.13,45.2\n81,Lingering Remnants,1.0,81.0\n16,A Modest Request,10.0,160.0\n2,Prometheus' Armoury,3.0,6.0\n64,The Heroic Shot,2.0,128.0\n29,The King's Heart,2.0,58.0\n29,The Seeker,4.0,116.0\n122,Cursed Words,1.0,122.0\n21,The Chosen,10.0,210.0\n702,The Scholar,1.0,702.0\n226,The Wrath,1.0,226.0\n0,A Note in the Wind,0.0,0.0\n54,The Insatiable,1.0,54.0\n154,Cartographer's Delight,1.0,154.0\n40,The Wolven King's Bite,2.0,80.0\n18,The Avenger,2.97,53.46\n44,The Journey,2.0,88.0\n0,The Price of Devotion,5583.04,0.0\n1,Nook's Crown,7.92,7.92\n5,The Immortal,1137.38,5686.9\n2,The Leviathan,10.0,20.0\n104,Vanity,1.0,104.0\n0,The Valley of Steel Boxes,0.0,0.0\n33,A Dab of Ink,2.0,66.0\n9,The Endless Darkness,2.0,18.0\n286,The Sun,1.0,286.0\n12,Gift of Asenath,13.79,165.48\n225,The Web,1.0,225.0\n77,Tranquillity,1.0,77.0\n197,The Cache,1.0,197.0\n44,Cameria's Cut,1.0,44.0\n182,The Trial,1.0,182.0\n5,The Dragon's Heart,50.0,250.0\n126,The Eye of the Dragon,1.0,126.0\n3,The Strategist,30.0,90.0\n16,Council of Cats,3.0,48.0\n0,House of Mirrors,11373.75,0.0\n239,Her Mask,1.0,239.0\n564,Loyalty,1.0,564.0\n45,Demigod's Wager,2.0,90.0\n190,The Dragon,1.0,190.0\n80,The Fletcher,1.0,80.0\n159,The Garish Power,1.6,254.40001\n1,The One That Got Away,17.99,17.99\n173,The Gladiator,1.0,173.0\n290,The Opulent,1.0,290.0\n20,Brotherhood in Exile,3.74,74.8\n88,The Cataclysm,1.0,88.0\n17,The Brawny Battle Mage,2.48,42.16\n294,Doedre's Madness,1.0,294.0\n97,The Drunken Aristocrat,1.07,103.79001\n20,Terrible Secret of Space,3.0,60.0\n177,Shard of Fate,1.0,177.0\n105,The Hoarder,1.0,105.0\n77,The Pack Leader,1.0,77.0\n96,A Mother's Parting Gift,1.0,96.0\n713,Emperor's Luck,1.0,713.0\n2,Further Invention,5.0,10.0\n6,The Catch,5.0,30.0\n67,Broken Truce,1.0,67.0\n4,Dying Light,5.95,23.8\n8,Ambitious Obsession,3.0,24.0\n38,The Fox in the Brambles,1.11,42.18\n63,The Incantation,2.0,126.0\n41,The Side Quest,2.0,82.0\n28,The Dungeon Master,3.0,84.0\n25,The Soul,2.0,50.0\n100,The Blessing of Moosh,1.0,100.0\n11,Rebirth and Renewal,3.91,43.010002\n272,The Tireless Extractor,1.0,272.0\n124,Grave Knowledge,1.0,124.0\n37,The Bear Woman,2.0,74.0\n21,The Bargain,5.0,105.0\n10,The Tumbleweed,5.0,50.0\n160,The Skeleton,1.0,160.0\n237,The Visionary,1.0,237.0\n63,The Gentleman,1.0,63.0\n0,The Devastator,0.0,0.0\n4,Imperfect Memories,20.0,80.0\n3,Fateful Meeting,10.0,30.0\n52,The Last One Standing,1.19,61.880005\n119,Chaotic Disposition,5.0,595.0\n357,The Harvester,1.0,357.0\n5,The Undisputed,5.0,25.0\n72,The Poet,1.0,72.0\n0,Birth of the Three,0.0,0.0\n214,The Explorer,1.0,214.0\n918,The Lover,1.0,918.0\n142,The Body,1.0,142.0\n22,The Tinkerer's Table,1.58,34.760002\n19,The Academic,19.0,361.0\n56,The Golden Era,2.0,112.0\n74,The Wolf's Legacy,1.0,74.0\n28,Unchained,2.0,56.0\n0,Luck of the Vaal,0.0,0.0\n26,Something Dark,7.0,182.0\n175,The Stormcaller,1.0,175.0\n0,The Mad King,0.0,0.0\n35,The Offering,2.0,70.0\n3,The Hook,28.92,86.76\n68,Call to the First Ones,1.17,79.56\n63,Earth Drinker,1.0,63.0\n74,Dialla's Subjugation,2.0,148.0\n84,The Mercenary,1.0,84.0\n8,The Artist,28.0,224.0\n59,The Saint's Treasure,2.0,118.0\n19,Checkmate,2.97,56.43\n25,The Sephirot,130.0,3250.0\n186,The Summoner,1.0,186.0\n2,Void of the Elements,5.0,10.0\n101,The Ruthless Ceinture,1.0,101.0\n121,Acclimatisation,1.89,228.69\n25,The Pact,2.0,50.0\n7,Etched in Blood,4.77,33.39\n753,Destined to Crumble,1.0,753.0\n0,The Transformation,0.0,0.0\n255,Three Voices,1.0,255.0\n71,Atziri's Arsenal,2.0,142.0\n0,The Doctor,3033.0,0.0\n183,Volatile Power,1.0,183.0\n141,The Lich,1.0,141.0\n377,The Scarred Meadow,1.0,377.0\n12,Audacity,1.0,12.0\n23,Mawr Blaidd,5.0,115.0\n71,Emperor of Purity,2.0,142.0\n14,From Bone to Ashes,2.0,28.0\n44,The Magma Crab,2.0,88.0\n45,The Forward Gaze,2.18,98.100006\n16,The Polymath,5.0,80.0\n12,The Bitter Blossom,5.0,60.0\n170,The Survivalist,1.0,170.0\n49,Guardian's Challenge,2.0,98.0\n97,No Traces,1.0,97.0\n44,Immortal Resolve,2.0,88.0\n360,Rats,1.0,360.0\n44,Arrogance of the Vaal,2.98,131.12\n259,Glimmer of Hope,1.0,259.0\n150,Jack in the Box,1.0,150.0\n12,Misery in Darkness,3.0,36.0\n194,The Aesthete,1.0,194.0\n5,The Enforcer,7.0,35.0\n118,Might is Right,1.0,118.0\n192,Mitts,1.0,192.0\n282,The Blazing Fire,1.0,282.0\n37,More is Never Enough,1.99,73.63\n34,The Cursed King,1.0,34.0\n192,The Cartographer,1.12,215.04001\n6,Luminous Trove,45.0,270.0\n3,Perfection,3.28,9.84\n9,Home,20.0,180.0\n367,Lantador's Lost Love,1.0,367.0\n19,The Escape,5.0,95.0\n102,The Fool,2.0,204.0\n93,The Forsaken,1.0,93.0\n207,The Inoculated,2.0,414.0\n67,The Rite of Elements,1.0,67.0\n201,The Standoff,1.0,201.0\n119,The Surveyor,1.0,119.0\n6,The Hale Heart,3.0,18.0\n38,Boon of the First Ones,1.0,38.0\n5,Seven Years Bad Luck,348.8,1744.0\n68,The Fathomless Depths,1.0,68.0\n1,The Old Man,5.0,5.0\n27,The Twilight Moon,2.0,54.0\n16,The Deep Ones,2.0,32.0\n26,The Forgotten Treasure,5.0,130.0\n19,The Mind's Eyes,9.0,171.0\n332,The Witch,1.0,332.0\n46,Anarchy's Price,1.37,63.02\n126,The Wretched,2.0,252.0\n0,Blessing of God,0.0,0.0\n0,Treasures of the Vaal,0.0,0.0\n6,Burning Blood,3.31,19.86\n76,The Beast,1.0,76.0\n14,The Dreamer,3.0,42.0\n171,Last Hope,1.0,171.0\n9,Magnum Opus,20.0,180.0\n31,\"Brush, Paint and Palette\",4.05,125.55\n38,The Ethereal,2.0,76.0\n6,Eternal Bonds,40.0,240.0\n89,The Last Supper,1.0,89.0\n68,The Long Watch,1.0,68.0\n173,The Puzzle,2.0,346.0\n15,The Scout,5.0,75.0\n13,Alluring Bounty,10.0,130.0\n7,Darker Half,50.0,350.0\n33,The Breach,2.0,66.0\n251,Dark Temptation,1.0,251.0\n18,A Stone Perfected,5.0,90.0\n186,Alone in the Darkness,1.0,186.0\n10,Desperate Crusade,5.0,50.0\n44,The Patient,42.0,1848.0\n150,The Twins,1.0,150.0\n526,The Flora's Gift,1.0,526.0\n73,The Wolverine,1.73,126.29\n9,Dementophobia,5.0,45.0\n26,Reckless Ambition,1.47,38.22\n50,The Dark Mage,1.0,50.0\n88,The Dreamland,1.0,88.0\n7,The Enlightened,35.0,245.0\n35,Astral Protection,1.95,68.25\n157,The Mountain,1.0,157.0\n36,The Hunger,2.0,72.0\n64,Triskaidekaphobia,2.0,128.0\n560,The Metalsmith's Gift,1.0,560.0\n7,The Emptiness,3.0,21.0\n27,Hunter's Reward,2.0,54.0\n160,Struck by Lightning,1.0,160.0\n30,Monochrome,15.0,450.0\n34,The Eldritch Decay,4.0,136.0\n7,Desecrated Virtue,116.69,816.83\n34,The Whiteout,2.0,68.0\n91,Hope,1.67,151.97\n26,Silence and Frost,3.0,78.0\n153,The Lion,1.0,153.0\n4,Duality,7.0,28.0\n75,The Innocent,2.0,150.0\n71,The Archmage's Right Hand,2.0,142.0\n100,Scholar of the Seas,1.0,100.0\n226,The Lunaris Priestess,1.0,226.0\n34,The Unexpected Prize,2.0,68.0\n0,The Mayor,0.0,0.0\n4,The Fishmonger,4.59,18.36\n0,Akil's Prophecy,0.0,0.0\n217,The Army of Blood,1.0,217.0\n25,The Darkest Dream,2.0,50.0\n5,The Damned,15.0,75.0\n23,The Offspring,1.41,32.43\n3,Keeper's Corruption,4.0,12.0\n40,Parasitic Passengers,2.0,80.0\n19,Lucky Deck,2.0,38.0\n173,Boundless Realms,1.0,173.0\n61,The Lord in Black,2.0,122.0\n0,Squandered Prosperity,0.0,0.0\n144,Sambodhi's Vow,2.0,288.0\n80,Gift of the Gemling Queen,1.0,80.0\n4,The Price of Loyalty,100.0,400.0\n11,The Samurai's Eye,55.0,605.0\n4,The Destination,20.0,80.0\n175,The Risk,3.0,525.0\n11,The Long Con,8.0,88.0\n27,The Obscured,1.0,27.0\n5,Brother's Stash,55.5,277.5\n413,The Carrion Crow,1.0,413.0\n58,The Messenger,1.24,71.92\n12,The Nurse,363.96,4367.52\n25,Endless Night,2.0,50.0\n420,The Doppelganger,1.0,420.0\n79,Underground Forest,4.0,316.0\n80,Prejudice,2.0,160.0\n2,The Cheater,251.19,502.38\n89,The Coming Storm,1.0,89.0\n225,Hunter's Resolve,1.0,225.0\n13,The Price of Prescience,4.58,59.54\n101,The Feast,1.0,101.0\n62,The Price of Protection,2.0,124.0\n76,Lysah's Respite,1.0,76.0\n52,The Undaunted,3.0,156.0\n4,Deadly Joy,44.14,176.56\n18,Judging Voices,6.0,108.0\n96,The Dapper Prodigy,2.0,192.0\n2,The Hive of Knowledge,5.0,10.0\n4,Broken Promises,30.0,120.0\n25,The Tyrant,2.0,50.0\n196,Thirst for Knowledge,1.0,196.0\n44,The Warlord,2.0,88.0\n243,Lost Worlds,1.0,243.0\n6,The Celestial Stone,4.19,25.14\n29,Costly Curio,4.0,116.0\n12,The Shortcut,5.0,60.0\n13,The Brittle Emperor,2.0,26.0\n49,The Master,1.0,49.0\n157,The Gambler,1.0,157.0\n14,The Prince of Darkness,3.0,42.0\n34,Justified Ambition,5.65,192.1\n", + "filename": "krolya_input.csv", + "href": "blob:http://localhost:5173/79f4d016-a174-457d-b0a1-05645692dd92" + }, + "error": null, + "price": 44074.2578125, + "records": [ + { + "calculated": 5, + "name": "The Progeny of Lunaris", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 25 + }, + { "calculated": 1, "name": "The Scarred Meadow", "realWeight": 17419.63671875, "stackSize": 377, "total": 377 }, + { "calculated": 0, "name": "The Transformation", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 1.7100000381469727, + "name": "The Breach", + "realWeight": 451.12615966796875, + "stackSize": 33, + "total": 56.43000030517578 + }, + { "calculated": 1, "name": "Lost Worlds", "realWeight": 9014.3935546875, "stackSize": 243, "total": 243 }, + { "calculated": 1, "name": "Lucky Connections", "realWeight": 6630.1728515625, "stackSize": 198, "total": 198 }, + { "calculated": 1, "name": "The Last Supper", "realWeight": 1998.076416015625, "stackSize": 89, "total": 89 }, + { "calculated": 1, "name": "The Offering", "realWeight": 492.7528381347656, "stackSize": 35, "total": 35 }, + { "calculated": 5, "name": "The Rabbit's Foot", "realWeight": 26.606155395507812, "stackSize": 5, "total": 25 }, + { "calculated": 1, "name": "The Surgeon", "realWeight": 4503.64599609375, "stackSize": 153, "total": 153 }, + { + "calculated": 3.380000114440918, + "name": "Lethean Temptation", + "realWeight": 64.25262451171875, + "stackSize": 9, + "total": 30.420001983642578 + }, + { "calculated": 5, "name": "The Eye of Terror", "realWeight": 26.606155395507812, "stackSize": 5, "total": 25 }, + { + "calculated": 82.4800033569336, + "name": "The One That Got Away", + "realWeight": 2.3797266483306885, + "stackSize": 1, + "total": 82.4800033569336 + }, + { "calculated": 0, "name": "Birth of the Three", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 1, + "name": "Society's Remorse", + "realWeight": 3325.769287109375, + "stackSize": 125, + "total": 125 + }, + { "calculated": 2695.5, "name": "The Doctor", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 140, + "name": "Succor of the Sinless", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 560 + }, + { + "calculated": 1.4500000476837158, + "name": "The Lord in Black", + "realWeight": 1133.7618408203125, + "stackSize": 61, + "total": 88.45000457763672 + }, + { "calculated": 1, "name": "The Skeleton", "realWeight": 4816.228515625, "stackSize": 160, "total": 160 }, + { "calculated": 1, "name": "Turn the Other Cheek", "realWeight": 8847.9765625, "stackSize": 240, "total": 240 }, + { + "calculated": 1, + "name": "The Lunaris Priestess", + "realWeight": 8085.18115234375, + "stackSize": 226, + "total": 226 + }, + { "calculated": 1, "name": "The Admirer", "realWeight": 1576.6942138671875, "stackSize": 76, "total": 76 }, + { "calculated": 1, "name": "No Traces", "realWeight": 2273.446044921875, "stackSize": 97, "total": 97 }, + { + "calculated": 5.559999942779541, + "name": "The Greatest Intentions", + "realWeight": 0, + "stackSize": 0, + "total": 0 + }, + { + "calculated": 1.7300000190734863, + "name": "The Undisputed", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 8.649999618530273 + }, + { "calculated": 4, "name": "Burning Blood", "realWeight": 34.974693298339844, "stackSize": 6, "total": 24 }, + { + "calculated": 2.75, + "name": "Lachrymal Necrosis", + "realWeight": 451.12615966796875, + "stackSize": 33, + "total": 90.75 + }, + { "calculated": 1, "name": "The Mountain", "realWeight": 4681.40869140625, "stackSize": 157, "total": 157 }, + { + "calculated": 6.289999961853027, + "name": "The Fishmonger", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 25.15999984741211 + }, + { "calculated": 33, "name": "The Patient", "realWeight": 694.5541381835938, "stackSize": 44, "total": 1452 }, + { "calculated": 2, "name": "The Whiteout", "realWeight": 471.78643798828125, "stackSize": 34, "total": 68 }, + { "calculated": 3, "name": "Silence and Frost", "realWeight": 315.4911193847656, "stackSize": 26, "total": 78 }, + { + "calculated": 1.399999976158142, + "name": "The Brittle Emperor", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 18.19999885559082 + }, + { "calculated": 1, "name": "Might is Right", "realWeight": 3050.35302734375, "stackSize": 118, "total": 118 }, + { "calculated": 2, "name": "Haunting Shadows", "realWeight": 297.4658203125, "stackSize": 25, "total": 50 }, + { + "calculated": 3.5999999046325684, + "name": "The Shepherd's Sandals", + "realWeight": 197.08677673339844, + "stackSize": 19, + "total": 68.4000015258789 + }, + { "calculated": 1, "name": "Tranquillity", "realWeight": 1607.915283203125, "stackSize": 77, "total": 77 }, + { "calculated": 1, "name": "The Gemcutter", "realWeight": 19900.91015625, "stackSize": 412, "total": 412 }, + { + "calculated": 4, + "name": "The Eldritch Decay", + "realWeight": 471.78643798828125, + "stackSize": 34, + "total": 136 + }, + { + "calculated": 4.619999885559082, + "name": "Mawr Blaidd", + "realWeight": 262.4936828613281, + "stackSize": 23, + "total": 106.25999450683594 + }, + { + "calculated": 1, + "name": "The Adventuring Spirit", + "realWeight": 7765.35107421875, + "stackSize": 220, + "total": 220 + }, + { "calculated": 5, "name": "The Escape", "realWeight": 197.08677673339844, "stackSize": 19, "total": 95 }, + { + "calculated": 5, + "name": "Chaotic Disposition", + "realWeight": 3089.210693359375, + "stackSize": 119, + "total": 595 + }, + { + "calculated": 1.5800000429153442, + "name": "Parasitic Passengers", + "realWeight": 602.028564453125, + "stackSize": 40, + "total": 63.20000076293945 + }, + { "calculated": 2, "name": "The King's Heart", "realWeight": 371.64141845703125, "stackSize": 29, "total": 58 }, + { + "calculated": 1.1100000143051147, + "name": "The Wolven King's Bite", + "realWeight": 602.028564453125, + "stackSize": 40, + "total": 44.400001525878906 + }, + { + "calculated": 30.709999084472656, + "name": "Eternal Bonds", + "realWeight": 34.974693298339844, + "stackSize": 6, + "total": 184.25999450683594 + }, + { "calculated": 1, "name": "The Inventor", "realWeight": 5509.14453125, "stackSize": 175, "total": 175 }, + { + "calculated": 3, + "name": "The Celestial Stone", + "realWeight": 34.974693298339844, + "stackSize": 6, + "total": 18 + }, + { "calculated": 1, "name": "Grave Knowledge", "realWeight": 3285.93994140625, "stackSize": 124, "total": 124 }, + { + "calculated": 7.360000133514404, + "name": "Dying Light", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 29.440000534057617 + }, + { "calculated": 1, "name": "Disdain", "realWeight": 352.5852355957031, "stackSize": 28, "total": 28 }, + { "calculated": 1, "name": "Forbidden Power", "realWeight": 1964.4957275390625, "stackSize": 88, "total": 88 }, + { "calculated": 2, "name": "Death", "realWeight": 1363.95703125, "stackSize": 69, "total": 138 }, + { + "calculated": 2, + "name": "Misery in Darkness", + "realWeight": 98.92337036132812, + "stackSize": 12, + "total": 24 + }, + { "calculated": 1, "name": "The Blazing Fire", "realWeight": 11269.3984375, "stackSize": 282, "total": 282 }, + { + "calculated": 5.980000019073486, + "name": "The Hive of Knowledge", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 11.960000038146973 + }, + { "calculated": 1, "name": "The Messenger", "realWeight": 1051.16064453125, "stackSize": 58, "total": 58 }, + { "calculated": 1, "name": "The Wolf", "realWeight": 5274.732421875, "stackSize": 170, "total": 170 }, + { "calculated": 0, "name": "Friendship", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 0, "name": "Squandered Prosperity", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 1, + "name": "Cartographer's Delight", + "realWeight": 4547.87109375, + "stackSize": 154, + "total": 154 + }, + { "calculated": 1, "name": "Broken Truce", "realWeight": 1305.08642578125, "stackSize": 67, "total": 67 }, + { "calculated": 1, "name": "The Beast", "realWeight": 1576.6942138671875, "stackSize": 76, "total": 76 }, + { "calculated": 3, "name": "The Hale Heart", "realWeight": 34.974693298339844, "stackSize": 6, "total": 18 }, + { "calculated": 1, "name": "The Dreamland", "realWeight": 1964.4957275390625, "stackSize": 88, "total": 88 }, + { "calculated": 1, "name": "The Doppelganger", "realWeight": 20483.353515625, "stackSize": 420, "total": 420 }, + { "calculated": 1, "name": "The Twins", "realWeight": 4371.8369140625, "stackSize": 150, "total": 150 }, + { + "calculated": 5, + "name": "Rebirth and Renewal", + "realWeight": 86.81926727294922, + "stackSize": 11, + "total": 55 + }, + { "calculated": 1, "name": "The Dark Mage", "realWeight": 841.3604125976562, "stackSize": 50, "total": 50 }, + { "calculated": 299.5, "name": "The Nurse", "realWeight": 98.92337036132812, "stackSize": 12, "total": 3594 }, + { "calculated": 1, "name": "The Warden", "realWeight": 9690.3017578125, "stackSize": 255, "total": 255 }, + { "calculated": 1, "name": "The Body", "realWeight": 4026.795654296875, "stackSize": 142, "total": 142 }, + { + "calculated": 5, + "name": "The Price of Prescience", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 65 + }, + { + "calculated": 1.809999942779541, + "name": "Deathly Designs", + "realWeight": 391.0290222167969, + "stackSize": 30, + "total": 54.29999923706055 + }, + { "calculated": 0, "name": "The Iron Bard", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "The Tyrant", "realWeight": 297.4658203125, "stackSize": 25, "total": 25 }, + { + "calculated": 1, + "name": "The Eye of the Dragon", + "realWeight": 3365.75830078125, + "stackSize": 126, + "total": 126 + }, + { "calculated": 1, "name": "The Stormcaller", "realWeight": 5509.14453125, "stackSize": 175, "total": 175 }, + { "calculated": 1, "name": "Rain Tempter", "realWeight": 11030.4755859375, "stackSize": 278, "total": 278 }, + { "calculated": 3, "name": "The Cartographer", "realWeight": 6331.095703125, "stackSize": 192, "total": 576 }, + { + "calculated": 58.56999969482422, + "name": "The Dragon's Heart", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 292.8500061035156 + }, + { + "calculated": 1, + "name": "The Tireless Extractor", + "realWeight": 10675.30859375, + "stackSize": 272, + "total": 272 + }, + { "calculated": 1, "name": "The Calling", "realWeight": 3774.29150390625, "stackSize": 136, "total": 136 }, + { "calculated": 0, "name": "Blessing of God", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 1.7400000095367432, + "name": "The Obscured", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 46.97999954223633 + }, + { "calculated": 2, "name": "Sambodhi's Wisdom", "realWeight": 766.7855224609375, "stackSize": 47, "total": 94 }, + { "calculated": 0, "name": "The Devastator", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "Boundless Realms", "realWeight": 5414.97216796875, "stackSize": 173, "total": 173 }, + { "calculated": 1, "name": "The Gambler", "realWeight": 4681.40869140625, "stackSize": 157, "total": 157 }, + { "calculated": 2, "name": "The Magma Crab", "realWeight": 694.5541381835938, "stackSize": 44, "total": 88 }, + { "calculated": 1, "name": "The Visionary", "realWeight": 8682.595703125, "stackSize": 237, "total": 237 }, + { "calculated": 0, "name": "The Mayor", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 4.619999885559082, + "name": "Audacity", + "realWeight": 98.92337036132812, + "stackSize": 12, + "total": 55.439998626708984 + }, + { "calculated": 1, "name": "The Tower", "realWeight": 5891.19921875, "stackSize": 183, "total": 183 }, + { + "calculated": 1, + "name": "A Mother's Parting Gift", + "realWeight": 2238.38037109375, + "stackSize": 96, + "total": 96 + }, + { + "calculated": 10, + "name": "Altered Perception", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 50 + }, + { "calculated": 30, "name": "Broken Promises", "realWeight": 19.037813186645508, "stackSize": 4, "total": 120 }, + { "calculated": 1, "name": "Rats", "realWeight": 16254.7705078125, "stackSize": 360, "total": 360 }, + { "calculated": 1, "name": "Scholar of the Seas", "realWeight": 2379.7265625, "stackSize": 100, "total": 100 }, + { + "calculated": 2.9200000762939453, + "name": "Hunter's Reward", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 78.84000396728516 + }, + { + "calculated": 2.930000066757202, + "name": "Rebirth", + "realWeight": 64.25262451171875, + "stackSize": 9, + "total": 26.3700008392334 + }, + { + "calculated": 1, + "name": "The Price of Protection", + "realWeight": 1161.755126953125, + "stackSize": 62, + "total": 62 + }, + { "calculated": 1, "name": "Boon of Justice", "realWeight": 8354.97265625, "stackSize": 231, "total": 231 }, + { "calculated": 1, "name": "The Summoner", "realWeight": 6036.65771484375, "stackSize": 186, "total": 186 }, + { "calculated": 1, "name": "The Warlord", "realWeight": 694.5541381835938, "stackSize": 44, "total": 44 }, + { "calculated": 1, "name": "Reckless Ambition", "realWeight": 315.4911193847656, "stackSize": 26, "total": 26 }, + { "calculated": 1, "name": "The Wolf's Legacy", "realWeight": 1514.867431640625, "stackSize": 74, "total": 74 }, + { "calculated": 20, "name": "The Artist", "realWeight": 53.84706497192383, "stackSize": 8, "total": 160 }, + { "calculated": 1, "name": "The Gentleman", "realWeight": 1189.9752197265625, "stackSize": 63, "total": 63 }, + { "calculated": 1, "name": "A Sea of Blue", "realWeight": 7712.4658203125, "stackSize": 219, "total": 219 }, + { "calculated": 29, "name": "The Strategist", "realWeight": 12.365421295166016, "stackSize": 3, "total": 87 }, + { "calculated": 1, "name": "The Lover", "realWeight": 66189.8046875, "stackSize": 918, "total": 918 }, + { + "calculated": 5, + "name": "A Stone Perfected", + "realWeight": 181.73385620117188, + "stackSize": 18, + "total": 90 + }, + { + "calculated": 110, + "name": "Doryani's Epiphany", + "realWeight": 152.30250549316406, + "stackSize": 16, + "total": 1760 + }, + { "calculated": 20, "name": "The Destination", "realWeight": 19.037813186645508, "stackSize": 4, "total": 80 }, + { "calculated": 4, "name": "Checkmate", "realWeight": 197.08677673339844, "stackSize": 19, "total": 76 }, + { "calculated": 5, "name": "Azyran's Reward", "realWeight": 410.74249267578125, "stackSize": 31, "total": 155 }, + { + "calculated": 2.130000114440918, + "name": "Etched in Blood", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 14.910000801086426 + }, + { + "calculated": 6.199999809265137, + "name": "The Eternal War", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 31 + }, + { + "calculated": 4.840000152587891, + "name": "The Emptiness", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 33.880001068115234 + }, + { "calculated": 2, "name": "The Soul", "realWeight": 297.4658203125, "stackSize": 25, "total": 50 }, + { "calculated": 2, "name": "The Wretched", "realWeight": 3365.75830078125, "stackSize": 126, "total": 252 }, + { + "calculated": 1, + "name": "The Arena Champion", + "realWeight": 11935.1669921875, + "stackSize": 293, + "total": 293 + }, + { "calculated": 40, "name": "The Enlightened", "realWeight": 44.07315444946289, "stackSize": 7, "total": 280 }, + { "calculated": 1, "name": "The Siren", "realWeight": 410.74249267578125, "stackSize": 31, "total": 31 }, + { + "calculated": 0.9700000286102295, + "name": "The King's Blade", + "realWeight": 41640.59765625, + "stackSize": 674, + "total": 653.780029296875 + }, + { "calculated": 5, "name": "Costly Curio", "realWeight": 371.64141845703125, "stackSize": 29, "total": 145 }, + { + "calculated": 1.4500000476837158, + "name": "From Bone to Ashes", + "realWeight": 124.65770721435547, + "stackSize": 14, + "total": 20.30000114440918 + }, + { + "calculated": 2.9600000381469727, + "name": "The Celestial Justicar", + "realWeight": 602.028564453125, + "stackSize": 40, + "total": 118.4000015258789 + }, + { + "calculated": 2, + "name": "Baited Expectations", + "realWeight": 315.4911193847656, + "stackSize": 26, + "total": 52 + }, + { "calculated": 15, "name": "The Astromancer", "realWeight": 2.3797266483306885, "stackSize": 1, "total": 15 }, + { + "calculated": 3.0199999809265137, + "name": "The Forgotten Treasure", + "realWeight": 315.4911193847656, + "stackSize": 26, + "total": 78.5199966430664 + }, + { "calculated": 2, "name": "Heterochromia", "realWeight": 1363.95703125, "stackSize": 69, "total": 138 }, + { + "calculated": 3.2300000190734863, + "name": "A Dab of Ink", + "realWeight": 451.12615966796875, + "stackSize": 33, + "total": 106.59000396728516 + }, + { "calculated": 1, "name": "The Garish Power", "realWeight": 4771.146484375, "stackSize": 159, "total": 159 }, + { "calculated": 1, "name": "The Journey", "realWeight": 694.5541381835938, "stackSize": 44, "total": 44 }, + { "calculated": 8, "name": "The Polymath", "realWeight": 152.30250549316406, "stackSize": 16, "total": 128 }, + { + "calculated": 8.359999656677246, + "name": "A Modest Request", + "realWeight": 152.30250549316406, + "stackSize": 16, + "total": 133.75999450683594 + }, + { + "calculated": 114.04000091552734, + "name": "The Price of Loyalty", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 456.1600036621094 + }, + { + "calculated": 1.2999999523162842, + "name": "The Conduit", + "realWeight": 624.7451782226562, + "stackSize": 41, + "total": 53.29999923706055 + }, + { + "calculated": 3, + "name": "The Dungeon Master", + "realWeight": 352.5852355957031, + "stackSize": 28, + "total": 84 + }, + { + "calculated": 5.039999961853027, + "name": "Duality", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 20.15999984741211 + }, + { "calculated": 1, "name": "The Fox", "realWeight": 1702.7939453125, "stackSize": 80, "total": 80 }, + { "calculated": 1, "name": "The Innocent", "realWeight": 1545.677734375, "stackSize": 75, "total": 75 }, + { + "calculated": 1.3899999856948853, + "name": "The Ethereal", + "realWeight": 557.445556640625, + "stackSize": 38, + "total": 52.81999969482422 + }, + { + "calculated": 3, + "name": "The Prince of Darkness", + "realWeight": 124.65770721435547, + "stackSize": 14, + "total": 42 + }, + { + "calculated": 1.090000033378601, + "name": "The Craving", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 29.43000030517578 + }, + { "calculated": 1, "name": "The Dragon", "realWeight": 6232.43017578125, "stackSize": 190, "total": 190 }, + { "calculated": 1, "name": "The Coming Storm", "realWeight": 1998.076416015625, "stackSize": 89, "total": 89 }, + { + "calculated": 1, + "name": "The Last One Standing", + "realWeight": 892.3436279296875, + "stackSize": 52, + "total": 52 + }, + { "calculated": 5, "name": "Desperate Crusade", "realWeight": 75.25357055664062, "stackSize": 10, "total": 50 }, + { "calculated": 1, "name": "The Valkyrie", "realWeight": 3405.90576171875, "stackSize": 127, "total": 127 }, + { "calculated": 1, "name": "The Watcher", "realWeight": 3167.416015625, "stackSize": 121, "total": 121 }, + { "calculated": 1, "name": "The Witch", "realWeight": 14395.7451171875, "stackSize": 332, "total": 332 }, + { "calculated": 1, "name": "Vinia's Token", "realWeight": 11209.5078125, "stackSize": 281, "total": 281 }, + { "calculated": 1, "name": "Lucky Deck", "realWeight": 197.08677673339844, "stackSize": 19, "total": 19 }, + { "calculated": 0, "name": "Vile Power", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 3, "name": "The Heroic Shot", "realWeight": 1218.4200439453125, "stackSize": 64, "total": 192 }, + { + "calculated": 1, + "name": "The Sword King's Salute", + "realWeight": 14136.3701171875, + "stackSize": 328, + "total": 328 + }, + { + "calculated": 1, + "name": "The Wolf's Shadow", + "realWeight": 4284.69189453125, + "stackSize": 148, + "total": 148 + }, + { + "calculated": 1.9299999475479126, + "name": "Triskaidekaphobia", + "realWeight": 1218.4200439453125, + "stackSize": 64, + "total": 123.5199966430664 + }, + { "calculated": 20, "name": "Home", "realWeight": 64.25262451171875, "stackSize": 9, "total": 180 }, + { "calculated": 1, "name": "Blind Venture", "realWeight": 2708.113037109375, "stackSize": 109, "total": 109 }, + { "calculated": 1, "name": "Prejudice", "realWeight": 1702.7939453125, "stackSize": 80, "total": 80 }, + { + "calculated": 2, + "name": "Emperor of Purity", + "realWeight": 1423.687255859375, + "stackSize": 71, + "total": 142 + }, + { "calculated": 1, "name": "Lysah's Respite", "realWeight": 1576.6942138671875, "stackSize": 76, "total": 76 }, + { + "calculated": 4.150000095367432, + "name": "The Bargain", + "realWeight": 229.01080322265625, + "stackSize": 21, + "total": 87.1500015258789 + }, + { "calculated": 1, "name": "Immortal Resolve", "realWeight": 694.5541381835938, "stackSize": 44, "total": 44 }, + { "calculated": 898.5, "name": "Love Through Ice", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "Glimmer of Hope", "realWeight": 9919.201171875, "stackSize": 259, "total": 259 }, + { + "calculated": 1.0499999523162842, + "name": "More is Never Enough", + "realWeight": 535.5864868164062, + "stackSize": 37, + "total": 38.849998474121094 + }, + { + "calculated": 2, + "name": "The Archmage's Right Hand", + "realWeight": 1423.687255859375, + "stackSize": 71, + "total": 142 + }, + { + "calculated": 1, + "name": "The Fathomless Depths", + "realWeight": 1334.41357421875, + "stackSize": 68, + "total": 68 + }, + { "calculated": 1, "name": "The Forsaken", "realWeight": 2134.28076171875, "stackSize": 93, "total": 93 }, + { "calculated": 10, "name": "Monochrome", "realWeight": 391.0290222167969, "stackSize": 30, "total": 300 }, + { "calculated": 1, "name": "The Harvester", "realWeight": 16052.0078125, "stackSize": 357, "total": 357 }, + { + "calculated": 1, + "name": "The Master Artisan", + "realWeight": 7345.66064453125, + "stackSize": 212, + "total": 212 + }, + { "calculated": 1, "name": "The Opulent", "realWeight": 11752.33203125, "stackSize": 290, "total": 290 }, + { + "calculated": 1.409999966621399, + "name": "The Road to Power", + "realWeight": 152.30250549316406, + "stackSize": 16, + "total": 22.559999465942383 + }, + { "calculated": 3, "name": "The Catch", "realWeight": 34.974693298339844, "stackSize": 6, "total": 18 }, + { "calculated": 1, "name": "Cameria's Cut", "realWeight": 694.5541381835938, "stackSize": 44, "total": 44 }, + { "calculated": 9, "name": "The Scout", "realWeight": 138.2496337890625, "stackSize": 15, "total": 135 }, + { "calculated": 1, "name": "Hunter's Resolve", "realWeight": 8031.578125, "stackSize": 225, "total": 225 }, + { + "calculated": 4.650000095367432, + "name": "Chasing Risk", + "realWeight": 297.4658203125, + "stackSize": 25, + "total": 116.25 + }, + { + "calculated": 956.0800170898438, + "name": "The Shieldbearer", + "realWeight": 12.365421295166016, + "stackSize": 3, + "total": 2868.239990234375 + }, + { "calculated": 1, "name": "The Standoff", "realWeight": 6781.4287109375, "stackSize": 201, "total": 201 }, + { + "calculated": 7.949999809265137, + "name": "The Vast", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 15.899999618530273 + }, + { "calculated": 1, "name": "The Explorer", "realWeight": 7449.853515625, "stackSize": 214, "total": 214 }, + { + "calculated": 2, + "name": "The Saint's Treasure", + "realWeight": 1078.462646484375, + "stackSize": 59, + "total": 118 + }, + { + "calculated": 6.449999809265137, + "name": "A Familiar Call", + "realWeight": 2.3797266483306885, + "stackSize": 1, + "total": 6.449999809265137 + }, + { + "calculated": 9.779999732971191, + "name": "The Chosen", + "realWeight": 229.01080322265625, + "stackSize": 21, + "total": 205.37998962402344 + }, + { + "calculated": 1.090000033378601, + "name": "The Unexpected Prize", + "realWeight": 471.78643798828125, + "stackSize": 34, + "total": 37.060001373291016 + }, + { "calculated": 4, "name": "The Seeker", "realWeight": 371.64141845703125, "stackSize": 29, "total": 116 }, + { "calculated": 1, "name": "The Wind", "realWeight": 410.74249267578125, "stackSize": 31, "total": 31 }, + { + "calculated": 1, + "name": "Three Faces in the Dark", + "realWeight": 22414.517578125, + "stackSize": 446, + "total": 446 + }, + { + "calculated": 4.440000057220459, + "name": "Underground Forest", + "realWeight": 1670.966552734375, + "stackSize": 79, + "total": 350.760009765625 + }, + { + "calculated": 0.41999998688697815, + "name": "Imperial Legacy", + "realWeight": 10440.69140625, + "stackSize": 268, + "total": 112.55999755859375 + }, + { + "calculated": 1, + "name": "Lingering Remnants", + "realWeight": 1734.8209228515625, + "stackSize": 81, + "total": 81 + }, + { "calculated": 1, "name": "Mitts", "realWeight": 6331.095703125, "stackSize": 192, "total": 192 }, + { "calculated": 1, "name": "Left to Fate", "realWeight": 2670.93115234375, "stackSize": 108, "total": 108 }, + { + "calculated": 359.3999938964844, + "name": "Seven Years Bad Luck", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 1797 + }, + { + "calculated": 1, + "name": "The Spoiled Prince", + "realWeight": 410.74249267578125, + "stackSize": 31, + "total": 31 + }, + { "calculated": 1, "name": "The Poet", "realWeight": 1453.870849609375, "stackSize": 72, "total": 72 }, + { + "calculated": 4, + "name": "Brotherhood in Exile", + "realWeight": 212.8492431640625, + "stackSize": 20, + "total": 80 + }, + { + "calculated": 5, + "name": "The Thaumaturgist", + "realWeight": 166.80169677734375, + "stackSize": 17, + "total": 85 + }, + { "calculated": 1, "name": "The Golden Era", "realWeight": 997.2616577148438, "stackSize": 56, "total": 56 }, + { "calculated": 1, "name": "The Deceiver", "realWeight": 1702.7939453125, "stackSize": 80, "total": 80 }, + { + "calculated": 0.7300000190734863, + "name": "Lantador's Lost Love", + "realWeight": 16731.1640625, + "stackSize": 367, + "total": 267.9100036621094 + }, + { "calculated": 1, "name": "The Fletcher", "realWeight": 1702.7939453125, "stackSize": 80, "total": 80 }, + { + "calculated": 5, + "name": "Keeper's Corruption", + "realWeight": 12.365421295166016, + "stackSize": 3, + "total": 15 + }, + { "calculated": 5, "name": "The Shortcut", "realWeight": 98.92337036132812, "stackSize": 12, "total": 60 }, + { "calculated": 30, "name": "Deadly Joy", "realWeight": 19.037813186645508, "stackSize": 4, "total": 120 }, + { "calculated": 1, "name": "Doedre's Madness", "realWeight": 11996.3212890625, "stackSize": 294, "total": 294 }, + { "calculated": 7, "name": "Something Dark", "realWeight": 315.4911193847656, "stackSize": 26, "total": 182 }, + { + "calculated": 1.6699999570846558, + "name": "Sambodhi's Vow", + "realWeight": 4112.16796875, + "stackSize": 144, + "total": 240.47999572753906 + }, + { "calculated": 5, "name": "Abandoned Wealth", "realWeight": 430.7765197753906, "stackSize": 32, "total": 160 }, + { + "calculated": 1, + "name": "The Army of Blood", + "realWeight": 7607.05712890625, + "stackSize": 217, + "total": 217 + }, + { "calculated": 1, "name": "The Formless Sea", "realWeight": 2065.804443359375, "stackSize": 91, "total": 91 }, + { "calculated": 5, "name": "Bijoux", "realWeight": 152.30250549316406, "stackSize": 16, "total": 80 }, + { "calculated": 1, "name": "Jack in the Box", "realWeight": 4371.8369140625, "stackSize": 150, "total": 150 }, + { "calculated": 10482.490234375, "name": "The Apothecary", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "The Carrion Crow", "realWeight": 19973.40625, "stackSize": 413, "total": 413 }, + { + "calculated": 2.180000066757202, + "name": "The Deep Ones", + "realWeight": 152.30250549316406, + "stackSize": 16, + "total": 34.880001068115234 + }, + { "calculated": 35, "name": "The Hook", "realWeight": 12.365421295166016, "stackSize": 3, "total": 105 }, + { + "calculated": 1, + "name": "The Jeweller's Boon", + "realWeight": 3167.416015625, + "stackSize": 121, + "total": 121 + }, + { + "calculated": 1.7400000095367432, + "name": "The Primordial", + "realWeight": 816.2462158203125, + "stackSize": 49, + "total": 85.26000213623047 + }, + { "calculated": 5, "name": "Judging Voices", "realWeight": 181.73385620117188, "stackSize": 18, "total": 90 }, + { "calculated": 1, "name": "The Sun", "realWeight": 11510.021484375, "stackSize": 286, "total": 286 }, + { "calculated": 1, "name": "Three Voices", "realWeight": 9690.3017578125, "stackSize": 255, "total": 255 }, + { + "calculated": 1, + "name": "Dialla's Subjugation", + "realWeight": 1514.867431640625, + "stackSize": 74, + "total": 74 + }, + { + "calculated": 3, + "name": "The Bitter Blossom", + "realWeight": 98.92337036132812, + "stackSize": 12, + "total": 36 + }, + { "calculated": 1, "name": "Demigod's Wager", "realWeight": 718.3661499023438, "stackSize": 45, "total": 45 }, + { "calculated": 1, "name": "Humility", "realWeight": 10911.65625, "stackSize": 276, "total": 276 }, + { + "calculated": 2, + "name": "The Blessing of Moosh", + "realWeight": 2379.7265625, + "stackSize": 100, + "total": 200 + }, + { "calculated": 4, "name": "Perfection", "realWeight": 12.365421295166016, "stackSize": 3, "total": 12 }, + { + "calculated": 3.109999895095825, + "name": "The Avenger", + "realWeight": 181.73385620117188, + "stackSize": 18, + "total": 55.97999954223633 + }, + { + "calculated": 0.9599999785423279, + "name": "The Chains that Bind", + "realWeight": 8518.259765625, + "stackSize": 234, + "total": 224.63999938964844 + }, + { "calculated": 1, "name": "The Deal", "realWeight": 997.2616577148438, "stackSize": 56, "total": 56 }, + { + "calculated": 1347.75, + "name": "The Immortal", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 6738.75 + }, + { "calculated": 1, "name": "The Cache", "realWeight": 6580.00830078125, "stackSize": 197, "total": 197 }, + { + "calculated": 0.36000001430511475, + "name": "Further Invention", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 0.7200000286102295 + }, + { "calculated": 1, "name": "The Rabid Rhoa", "realWeight": 5043.744140625, "stackSize": 165, "total": 165 }, + { + "calculated": 3.390000104904175, + "name": "Prometheus' Armoury", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 6.78000020980835 + }, + { + "calculated": 5.989999771118164, + "name": "Remembrance", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 29.94999885559082 + }, + { "calculated": 1, "name": "The Penitent", "realWeight": 5414.97216796875, "stackSize": 173, "total": 173 }, + { "calculated": 1, "name": "The Pack Leader", "realWeight": 1607.915283203125, "stackSize": 77, "total": 77 }, + { "calculated": 1, "name": "The Card Sharp", "realWeight": 866.72705078125, "stackSize": 51, "total": 51 }, + { "calculated": 1, "name": "Last Hope", "realWeight": 5321.3427734375, "stackSize": 171, "total": 171 }, + { "calculated": 1, "name": "The Bear Woman", "realWeight": 535.5864868164062, "stackSize": 37, "total": 37 }, + { + "calculated": 2, + "name": "Merciless Armament", + "realWeight": 166.80169677734375, + "stackSize": 17, + "total": 34 + }, + { + "calculated": 2.2699999809265137, + "name": "The Brawny Battle Mage", + "realWeight": 166.80169677734375, + "stackSize": 17, + "total": 38.59000015258789 + }, + { "calculated": 127, "name": "The Sephirot", "realWeight": 297.4658203125, "stackSize": 25, "total": 3175 }, + { "calculated": 3, "name": "The Forward Gaze", "realWeight": 718.3661499023438, "stackSize": 45, "total": 135 }, + { "calculated": 1, "name": "The Cataclysm", "realWeight": 1964.4957275390625, "stackSize": 88, "total": 88 }, + { + "calculated": 20, + "name": "Imperfect Memories", + "realWeight": 19.037813186645508, + "stackSize": 4, + "total": 80 + }, + { + "calculated": 1, + "name": "Alone in the Darkness", + "realWeight": 6036.65771484375, + "stackSize": 186, + "total": 186 + }, + { "calculated": 1, "name": "The Hermit", "realWeight": 14330.7548828125, "stackSize": 331, "total": 331 }, + { "calculated": 1, "name": "The Long Watch", "realWeight": 1334.41357421875, "stackSize": 68, "total": 68 }, + { + "calculated": 1, + "name": "Call to the First Ones", + "realWeight": 1334.41357421875, + "stackSize": 68, + "total": 68 + }, + { + "calculated": 4.570000171661377, + "name": "The Dreamer", + "realWeight": 124.65770721435547, + "stackSize": 14, + "total": 63.980003356933594 + }, + { "calculated": 1, "name": "The Inoculated", "realWeight": 7087.3291015625, "stackSize": 207, "total": 207 }, + { + "calculated": 17, + "name": "Gemcutter's Mercy", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 221 + }, + { "calculated": 2, "name": "The Bones", "realWeight": 514.02099609375, "stackSize": 36, "total": 72 }, + { + "calculated": 2.309999942779541, + "name": "The Jester", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 62.369998931884766 + }, + { + "calculated": 1.1399999856948853, + "name": "The Lich", + "realWeight": 3984.333984375, + "stackSize": 141, + "total": 160.74000549316406 + }, + { "calculated": 1, "name": "Astral Protection", "realWeight": 492.7528381347656, "stackSize": 35, "total": 35 }, + { + "calculated": 6.349999904632568, + "name": "Fateful Meeting", + "realWeight": 12.365421295166016, + "stackSize": 3, + "total": 19.049999237060547 + }, + { + "calculated": 50, + "name": "The Samurai's Eye", + "realWeight": 86.81926727294922, + "stackSize": 11, + "total": 550 + }, + { + "calculated": 1.909999966621399, + "name": "The Spark and the Flame", + "realWeight": 579.5941772460938, + "stackSize": 39, + "total": 74.48999786376953 + }, + { + "calculated": 1, + "name": "Destined to Crumble", + "realWeight": 49172.19140625, + "stackSize": 753, + "total": 753 + }, + { + "calculated": 25, + "name": "Beauty Through Death", + "realWeight": 12.365421295166016, + "stackSize": 3, + "total": 75 + }, + { "calculated": 1, "name": "The Survivalist", "realWeight": 5274.732421875, "stackSize": 170, "total": 170 }, + { + "calculated": 4.139999866485596, + "name": "The Throne", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 53.81999969482422 + }, + { + "calculated": 1.0299999713897705, + "name": "Endless Night", + "realWeight": 297.4658203125, + "stackSize": 25, + "total": 25.75 + }, + { "calculated": 2, "name": "Azure Rage", "realWeight": 2670.93115234375, "stackSize": 108, "total": 216 }, + { "calculated": 1, "name": "The Undaunted", "realWeight": 892.3436279296875, "stackSize": 52, "total": 52 }, + { "calculated": 1, "name": "Thunderous Skies", "realWeight": 9576.5224609375, "stackSize": 253, "total": 253 }, + { + "calculated": 4.099999904632568, + "name": "The World Eater", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 20.5 + }, + { "calculated": 1, "name": "The Scholar", "realWeight": 44262.1796875, "stackSize": 702, "total": 702 }, + { + "calculated": 1.2899999618530273, + "name": "The Traitor", + "realWeight": 866.72705078125, + "stackSize": 51, + "total": 65.79000091552734 + }, + { "calculated": 3, "name": "The Void", "realWeight": 9633.3564453125, "stackSize": 254, "total": 762 }, + { "calculated": 4, "name": "The Cursed King", "realWeight": 471.78643798828125, "stackSize": 34, "total": 136 }, + { "calculated": 1, "name": "The Puzzle", "realWeight": 5414.97216796875, "stackSize": 173, "total": 173 }, + { "calculated": 1, "name": "The Realm", "realWeight": 333.86639404296875, "stackSize": 27, "total": 27 }, + { "calculated": 1, "name": "Dark Temptation", "realWeight": 9463.193359375, "stackSize": 251, "total": 251 }, + { "calculated": 15, "name": "Magnum Opus", "realWeight": 64.25262451171875, "stackSize": 9, "total": 135 }, + { + "calculated": 1.690000057220459, + "name": "The Twilight Moon", + "realWeight": 333.86639404296875, + "stackSize": 27, + "total": 45.630001068115234 + }, + { "calculated": 45, "name": "Luminous Trove", "realWeight": 34.974693298339844, "stackSize": 6, "total": 270 }, + { + "calculated": 1.0099999904632568, + "name": "The Landing", + "realWeight": 742.4442749023438, + "stackSize": 46, + "total": 46.459999084472656 + }, + { + "calculated": 1, + "name": "The Ruthless Ceinture", + "realWeight": 2415.51171875, + "stackSize": 101, + "total": 101 + }, + { + "calculated": 1.9500000476837158, + "name": "Acclimatisation", + "realWeight": 3167.416015625, + "stackSize": 121, + "total": 235.95001220703125 + }, + { + "calculated": 10, + "name": "Alluring Bounty", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 130 + }, + { "calculated": 1, "name": "The Surveyor", "realWeight": 3089.210693359375, "stackSize": 119, "total": 119 }, + { "calculated": 1, "name": "The Web", "realWeight": 8031.578125, "stackSize": 225, "total": 225 }, + { "calculated": 3, "name": "The Insatiable", "realWeight": 944.3167114257812, "stackSize": 54, "total": 162 }, + { "calculated": 0, "name": "Luck of the Vaal", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 7.110000133514404, + "name": "Nook's Crown", + "realWeight": 2.3797266483306885, + "stackSize": 1, + "total": 7.110000133514404 + }, + { + "calculated": 0.9900000095367432, + "name": "The Flora's Gift", + "realWeight": 28708.181640625, + "stackSize": 526, + "total": 520.739990234375 + }, + { + "calculated": 1, + "name": "The Drunken Aristocrat", + "realWeight": 2273.446044921875, + "stackSize": 97, + "total": 97 + }, + { + "calculated": 1, + "name": "Coveted Possession", + "realWeight": 3365.75830078125, + "stackSize": 126, + "total": 126 + }, + { "calculated": 1, "name": "Loyalty", "realWeight": 31874.671875, "stackSize": 564, "total": 564 }, + { + "calculated": 2822.47998046875, + "name": "The Demon", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 5644.9599609375 + }, + { + "calculated": 14.789999961853027, + "name": "The Leviathan", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 29.579999923706055 + }, + { + "calculated": 10, + "name": "The Mind's Eyes", + "realWeight": 197.08677673339844, + "stackSize": 19, + "total": 190 + }, + { + "calculated": 2.009999990463257, + "name": "The Offspring", + "realWeight": 262.4936828613281, + "stackSize": 23, + "total": 46.22999954223633 + }, + { + "calculated": 5658.89990234375, + "name": "Unrequited Love", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 11317.7998046875 + }, + { "calculated": 1, "name": "Prosperity", "realWeight": 11874.1162109375, "stackSize": 292, "total": 292 }, + { "calculated": 1, "name": "Shard of Fate", "realWeight": 5603.85595703125, "stackSize": 177, "total": 177 }, + { "calculated": 1, "name": "Treasure Hunter", "realWeight": 816.2462158203125, "stackSize": 49, "total": 49 }, + { + "calculated": 17.920000076293945, + "name": "The Old Man", + "realWeight": 2.3797266483306885, + "stackSize": 1, + "total": 17.920000076293945 + }, + { + "calculated": 7.960000038146973, + "name": "Draped in Dreams", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 39.79999923706055 + }, + { + "calculated": 1.6100000143051147, + "name": "The Wilted Rose", + "realWeight": 2415.51171875, + "stackSize": 101, + "total": 162.61000061035156 + }, + { "calculated": 1, "name": "The Battle Born", "realWeight": 5043.744140625, "stackSize": 165, "total": 165 }, + { "calculated": 1, "name": "Rain of Chaos", "realWeight": 121465.9921875, "stackSize": 1376, "total": 1376 }, + { + "calculated": 3.25, + "name": "Dying Anguish", + "realWeight": 1305.08642578125, + "stackSize": 67, + "total": 217.75 + }, + { "calculated": 3, "name": "Peaceful Moments", "realWeight": 197.08677673339844, "stackSize": 19, "total": 57 }, + { + "calculated": 3.7300000190734863, + "name": "The Life Thief", + "realWeight": 75.25357055664062, + "stackSize": 10, + "total": 37.29999923706055 + }, + { + "calculated": 1.0299999713897705, + "name": "Echoes of Love", + "realWeight": 492.7528381347656, + "stackSize": 35, + "total": 36.04999923706055 + }, + { + "calculated": 2.2799999713897705, + "name": "Terrible Secret of Space", + "realWeight": 212.8492431640625, + "stackSize": 20, + "total": 45.599998474121094 + }, + { + "calculated": 1.8300000429153442, + "name": "The Incantation", + "realWeight": 1189.9752197265625, + "stackSize": 63, + "total": 115.29000091552734 + }, + { + "calculated": 1, + "name": "The Rite of Elements", + "realWeight": 1305.08642578125, + "stackSize": 67, + "total": 67 + }, + { "calculated": 1, "name": "The Darkest Dream", "realWeight": 297.4658203125, "stackSize": 25, "total": 25 }, + { "calculated": 1, "name": "The Scavenger", "realWeight": 2203.496826171875, "stackSize": 95, "total": 95 }, + { "calculated": 1, "name": "Harmony of Souls", "realWeight": 138.2496337890625, "stackSize": 15, "total": 15 }, + { + "calculated": 4.579999923706055, + "name": "The Enforcer", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 22.899999618530273 + }, + { + "calculated": 2.759999990463257, + "name": "Arrogance of the Vaal", + "realWeight": 694.5541381835938, + "stackSize": 44, + "total": 121.44000244140625 + }, + { + "calculated": 4.190000057220459, + "name": "The Pact", + "realWeight": 297.4658203125, + "stackSize": 25, + "total": 104.75 + }, + { "calculated": 1, "name": "The Wrath", "realWeight": 8085.18115234375, "stackSize": 226, "total": 226 }, + { "calculated": 0, "name": "The Mad King", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 9, + "name": "Pride of the First Ones", + "realWeight": 138.2496337890625, + "stackSize": 15, + "total": 135 + }, + { "calculated": 1, "name": "Cursed Words", "realWeight": 3206.7626953125, "stackSize": 122, "total": 122 }, + { + "calculated": 2, + "name": "The Dapper Prodigy", + "realWeight": 2238.38037109375, + "stackSize": 96, + "total": 192 + }, + { + "calculated": 2.7899999618530273, + "name": "Dark Dreams", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 19.529998779296875 + }, + { + "calculated": 3.9800000190734863, + "name": "Dementophobia", + "realWeight": 64.25262451171875, + "stackSize": 9, + "total": 35.81999969482422 + }, + { + "calculated": 1, + "name": "The Fox in the Brambles", + "realWeight": 557.445556640625, + "stackSize": 38, + "total": 38 + }, + { + "calculated": 1.600000023841858, + "name": "The Hunger", + "realWeight": 514.02099609375, + "stackSize": 36, + "total": 57.60000228881836 + }, + { "calculated": 1, "name": "The Oath", "realWeight": 1607.915283203125, "stackSize": 77, "total": 77 }, + { "calculated": 1, "name": "The Porcupine", "realWeight": 3609.00927734375, "stackSize": 132, "total": 132 }, + { "calculated": 1, "name": "Vanity", "realWeight": 2523.928955078125, "stackSize": 104, "total": 104 }, + { + "calculated": 117.26000213623047, + "name": "Desecrated Virtue", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 820.8200073242188 + }, + { + "calculated": 22.979999542236328, + "name": "Darker Half", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 160.86000061035156 + }, + { "calculated": 1, "name": "The Journalist", "realWeight": 11935.1669921875, "stackSize": 293, "total": 293 }, + { "calculated": 1, "name": "The Risk", "realWeight": 5509.14453125, "stackSize": 175, "total": 175 }, + { "calculated": 0, "name": "A Note in the Wind", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "Anarchy's Price", "realWeight": 742.4442749023438, "stackSize": 46, "total": 46 }, + { "calculated": 13178, "name": "House of Mirrors", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 0, "name": "Akil's Prophecy", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 2, + "name": "Pride Before the Fall", + "realWeight": 124.65770721435547, + "stackSize": 14, + "total": 28 + }, + { "calculated": 13, "name": "The Aspirant", "realWeight": 19.037813186645508, "stackSize": 4, "total": 52 }, + { "calculated": 1, "name": "Earth Drinker", "realWeight": 1189.9752197265625, "stackSize": 63, "total": 63 }, + { + "calculated": 1.9199999570846558, + "name": "The Queen", + "realWeight": 86.81926727294922, + "stackSize": 11, + "total": 21.119998931884766 + }, + { "calculated": 1, "name": "The Master", "realWeight": 816.2462158203125, "stackSize": 49, "total": 49 }, + { + "calculated": 518.6099853515625, + "name": "Choking Guilt", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 1037.219970703125 + }, + { + "calculated": 15.319999694824219, + "name": "The Academic", + "realWeight": 197.08677673339844, + "stackSize": 19, + "total": 291.0799865722656 + }, + { "calculated": 15, "name": "Winter's Embrace", "realWeight": 26.606155395507812, "stackSize": 5, "total": 75 }, + { "calculated": 1, "name": "The Hoarder", "realWeight": 2560.419189453125, "stackSize": 105, "total": 105 }, + { + "calculated": 1, + "name": "Gemcutter's Promise", + "realWeight": 6480.0595703125, + "stackSize": 195, + "total": 195 + }, + { + "calculated": 1, + "name": "The Tinkerer's Table", + "realWeight": 245.5619659423828, + "stackSize": 22, + "total": 22 + }, + { "calculated": 2.380000114440918, "name": "The Awakened", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 64.62000274658203, + "name": "Brother's Stash", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 323.1000061035156 + }, + { + "calculated": 1.4500000476837158, + "name": "Light and Truth", + "realWeight": 451.12615966796875, + "stackSize": 33, + "total": 47.85000228881836 + }, + { "calculated": 1, "name": "Time-Lost Relic", "realWeight": 6232.43017578125, "stackSize": 190, "total": 190 }, + { + "calculated": 2, + "name": "Boon of the First Ones", + "realWeight": 557.445556640625, + "stackSize": 38, + "total": 76 + }, + { "calculated": 1, "name": "The Catalyst", "realWeight": 22716.732421875, "stackSize": 450, "total": 450 }, + { + "calculated": 1, + "name": "Thirst for Knowledge", + "realWeight": 6529.9697265625, + "stackSize": 196, + "total": 196 + }, + { + "calculated": 5.840000152587891, + "name": "Void of the Elements", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 11.680000305175781 + }, + { "calculated": 1, "name": "Her Mask", "realWeight": 8792.7333984375, "stackSize": 239, "total": 239 }, + { "calculated": 5, "name": "The Tumbleweed", "realWeight": 75.25357055664062, "stackSize": 10, "total": 50 }, + { "calculated": 3, "name": "Council of Cats", "realWeight": 152.30250549316406, "stackSize": 16, "total": 48 }, + { + "calculated": 1.9600000381469727, + "name": "The Enthusiasts", + "realWeight": 371.64141845703125, + "stackSize": 29, + "total": 56.84000015258789 + }, + { "calculated": 1, "name": "The Gladiator", "realWeight": 5414.97216796875, "stackSize": 173, "total": 173 }, + { "calculated": 3, "name": "Divine Justice", "realWeight": 229.01080322265625, "stackSize": 21, "total": 63 }, + { + "calculated": 44, + "name": "A Fate Worse Than Death", + "realWeight": 44.07315444946289, + "stackSize": 7, + "total": 308 + }, + { "calculated": 16, "name": "The Damned", "realWeight": 26.606155395507812, "stackSize": 5, "total": 80 }, + { "calculated": 1, "name": "The Trial", "realWeight": 5842.97705078125, "stackSize": 182, "total": 182 }, + { "calculated": 9, "name": "The Long Con", "realWeight": 86.81926727294922, "stackSize": 11, "total": 99 }, + { + "calculated": 3, + "name": "Justified Ambition", + "realWeight": 471.78643798828125, + "stackSize": 34, + "total": 102 + }, + { "calculated": 0, "name": "The Valley of Steel Boxes", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "The Endurance", "realWeight": 6036.65771484375, "stackSize": 186, "total": 186 }, + { "calculated": 0, "name": "Treasures of the Vaal", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 2, "name": "Unchained", "realWeight": 352.5852355957031, "stackSize": 28, "total": 56 }, + { + "calculated": 1, + "name": "Gift of the Gemling Queen", + "realWeight": 1702.7939453125, + "stackSize": 80, + "total": 80 + }, + { "calculated": 1, "name": "Hubris", "realWeight": 5368.08935546875, "stackSize": 172, "total": 172 }, + { "calculated": 1, "name": "The Feast", "realWeight": 2415.51171875, "stackSize": 101, "total": 101 }, + { "calculated": 1, "name": "Volatile Power", "realWeight": 5891.19921875, "stackSize": 183, "total": 183 }, + { "calculated": 1, "name": "Emperor's Luck", "realWeight": 45306.58984375, "stackSize": 713, "total": 713 }, + { + "calculated": 1, + "name": "Struck by Lightning", + "realWeight": 4816.228515625, + "stackSize": 160, + "total": 160 + }, + { "calculated": 1, "name": "The Mercenary", "realWeight": 1832.08642578125, "stackSize": 84, "total": 84 }, + { "calculated": 1, "name": "The Wolverine", "realWeight": 1484.2645263671875, "stackSize": 73, "total": 73 }, + { "calculated": 1, "name": "Hope", "realWeight": 2065.804443359375, "stackSize": 91, "total": 91 }, + { + "calculated": 1, + "name": "The Encroaching Darkness", + "realWeight": 892.3436279296875, + "stackSize": 52, + "total": 52 + }, + { + "calculated": 3, + "name": "Guardian's Challenge", + "realWeight": 816.2462158203125, + "stackSize": 49, + "total": 147 + }, + { "calculated": 1, "name": "The Aesthete", "realWeight": 6430.2763671875, "stackSize": 194, "total": 194 }, + { "calculated": 2, "name": "The Easy Stroll", "realWeight": 1702.7939453125, "stackSize": 80, "total": 160 }, + { + "calculated": 2, + "name": "The Endless Darkness", + "realWeight": 64.25262451171875, + "stackSize": 9, + "total": 18 + }, + { + "calculated": 1347.75, + "name": "The Fiend", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 2695.5 + }, + { + "calculated": 1.8600000143051147, + "name": "The Lord of Celebration", + "realWeight": 579.5941772460938, + "stackSize": 39, + "total": 72.54000091552734 + }, + { "calculated": 1, "name": "The Lion", "realWeight": 4503.64599609375, "stackSize": 153, "total": 153 }, + { "calculated": 10, "name": "The Sacrifice", "realWeight": 34.974693298339844, "stackSize": 6, "total": 60 }, + { + "calculated": 3.119999885559082, + "name": "The Side Quest", + "realWeight": 624.7451782226562, + "stackSize": 41, + "total": 127.91999816894531 + }, + { "calculated": 1, "name": "The Sigil", "realWeight": 7241.958984375, "stackSize": 210, "total": 210 }, + { "calculated": 1, "name": "The Betrayal", "realWeight": 2820.681884765625, "stackSize": 112, "total": 112 }, + { "calculated": 5.75, "name": "The Sustenance", "realWeight": 0, "stackSize": 0, "total": 0 }, + { "calculated": 1, "name": "The Union", "realWeight": 4198.13427734375, "stackSize": 146, "total": 146 }, + { "calculated": 1, "name": "The One With All", "realWeight": 2415.51171875, "stackSize": 101, "total": 101 }, + { "calculated": 5, "name": "The White Knight", "realWeight": 26.606155395507812, "stackSize": 5, "total": 25 }, + { + "calculated": 2.190000057220459, + "name": "Bowyer's Dream", + "realWeight": 111.54295349121094, + "stackSize": 13, + "total": 28.470001220703125 + }, + { "calculated": 1, "name": "The Demoness", "realWeight": 8682.595703125, "stackSize": 237, "total": 237 }, + { "calculated": 1, "name": "Buried Treasure", "realWeight": 1024.0928955078125, "stackSize": 57, "total": 57 }, + { "calculated": 10, "name": "Gift of Asenath", "realWeight": 98.92337036132812, "stackSize": 12, "total": 120 }, + { "calculated": 5870.2001953125, "name": "The Price of Devotion", "realWeight": 0, "stackSize": 0, "total": 0 }, + { + "calculated": 149.6999969482422, + "name": "Wealth and Power", + "realWeight": 12.365421295166016, + "stackSize": 3, + "total": 449.0999755859375 + }, + { + "calculated": 4, + "name": "Ambitious Obsession", + "realWeight": 53.84706497192383, + "stackSize": 8, + "total": 32 + }, + { + "calculated": 2.9800000190734863, + "name": "The Cacophony", + "realWeight": 197.08677673339844, + "stackSize": 19, + "total": 56.619998931884766 + }, + { + "calculated": 2.6500000953674316, + "name": "Atziri's Arsenal", + "realWeight": 1423.687255859375, + "stackSize": 71, + "total": 188.15000915527344 + }, + { "calculated": 1, "name": "Assassin's Favour", "realWeight": 8246.7021484375, "stackSize": 229, "total": 229 }, + { + "calculated": 222.86000061035156, + "name": "The Cheater", + "realWeight": 6.7308831214904785, + "stackSize": 2, + "total": 445.7200012207031 + }, + { + "calculated": 3, + "name": "Brush, Paint and Palette", + "realWeight": 410.74249267578125, + "stackSize": 31, + "total": 93 + }, + { "calculated": 3, "name": "The Professor", "realWeight": 352.5852355957031, "stackSize": 28, "total": 84 }, + { "calculated": 1, "name": "The Fool", "realWeight": 2451.474365234375, "stackSize": 102, "total": 102 }, + { + "calculated": 1, + "name": "The Metalsmith's Gift", + "realWeight": 31536.181640625, + "stackSize": 560, + "total": 560 + }, + { + "calculated": 34.349998474121094, + "name": "The Gulf", + "realWeight": 26.606155395507812, + "stackSize": 5, + "total": 171.75 + } + ], + "selected": false, + "valid": true +} diff --git a/src/components/FixedNamesList.vue b/src/components/FixedNamesList.vue new file mode 100644 index 00000000..e3f44402 --- /dev/null +++ b/src/components/FixedNamesList.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/components/OrderTriangle/OrderTriangle.story.vue b/src/components/OrderTriangle/OrderTriangle.story.vue new file mode 100644 index 00000000..0aaeca38 --- /dev/null +++ b/src/components/OrderTriangle/OrderTriangle.story.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/components/OrderTriangle/OrderTriangle.vue b/src/components/OrderTriangle/OrderTriangle.vue new file mode 100644 index 00000000..bc6e7a9c --- /dev/null +++ b/src/components/OrderTriangle/OrderTriangle.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/components/icons/ArrowRight.vue b/src/components/icons/ArrowRight.vue new file mode 100644 index 00000000..4cb4e12a --- /dev/null +++ b/src/components/icons/ArrowRight.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/components/icons/CSVIcon.vue b/src/components/icons/CSVIcon.vue new file mode 100644 index 00000000..425af533 --- /dev/null +++ b/src/components/icons/CSVIcon.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/composables.ts b/src/composables.ts new file mode 100644 index 00000000..f0e1ced7 --- /dev/null +++ b/src/composables.ts @@ -0,0 +1,3 @@ +import { ref, unref, Ref, computed, watch, watchEffect, isRef } from 'vue'; +import { createCSVLink } from './lib'; +import { FileContents } from './types'; diff --git a/src/lib.ts b/src/lib.ts new file mode 100644 index 00000000..f55ec193 --- /dev/null +++ b/src/lib.ts @@ -0,0 +1,110 @@ +import { CommandList, Contents, FileContents, CardRecord, WeightedCardRecord } from './types'; +import { invoke } from '@tauri-apps/api'; + +export const createCSVLink = (contents: string): string => { + const blob = new Blob([contents], { type: 'csv/text' }); + const href = URL.createObjectURL(blob); + return href; +}; + +export const downloadFiles = (hrefList: FileContents[]): void => { + const links: HTMLAnchorElement[] = []; + hrefList.forEach(({ filename, href }) => { + links.push(createDownloadLink(href, filename)); + }); + links.forEach(a => { + a.click(); + }); +}; + +export const createDownloadLink = (href: string, filename: string): HTMLAnchorElement => { + const a = document.createElement('a'); + a.download = `${filename}`; + a.href = href; + return a; +}; + +export const createCsvFile = (csvString: string, filename: string): File => + new File([csvString], filename, { type: 'text/csv' }); + +export const command = ( + cmd: T, + args: CommandList[T]['args'] +): CommandList[T]['returnType'] => { + return invoke(cmd, args) as CommandList[T]['returnType']; +}; + +const calcRecordWeight = (record: CardRecord, allStackSize: number): number => record.stackSize / allStackSize; +const calcRecordRealWeight = ( + record: CardRecord, + realStackedSummaryWeight: number, + condenseFactor: number, + allStackSize: number +): number => (realStackedSummaryWeight * calcRecordWeight(record, allStackSize)) ** (1 / condenseFactor); + +export const createContents = async (file: File): Promise => { + let valid = false; + let error = null; + let text = await file.text(); + let href = ''; + let records: CardRecord[] = []; + let notCards: string[] = []; + let fixedNames: Record = {}; + + try { + const data = await command('read_polish_csv', { csvString: text }); + records = data.records; + text = data.csv; + notCards = data.notCards; + fixedNames = data.fixedNames; + href = createCSVLink(text); + valid = true; + } catch (err) { + error = err as string; + } + + // const allStackSize = records.reduce((summ, { stackSize }) => (summ += stackSize), 0); + // const REAL_STACKED_RAIN_OF_CHAOS_WEIGHT = 2452.65513; + // const CONDENSE_FACTOR = 2 / 3; + // const rainOfChaos = records.find(({ name }) => name === 'Rain of Chaos'); + // if (!rainOfChaos) throw new Error('No Rain of Chaos card'); + // const weight = rainOfChaos.stackSize / allStackSize; + // const realStackedSummaryWeight = REAL_STACKED_RAIN_OF_CHAOS_WEIGHT / weight; + // const weightedRecords: WeightedCardRecord[] = records.map(record => { + // const realWeight = calcRecordRealWeight(record, realStackedSummaryWeight, CONDENSE_FACTOR, allStackSize); + // return { + // ...record, + // realWeight, + // }; + // }); + + let weightedRecords: WeightedCardRecord[] = []; + try { + const { csv, records: weighted } = await command('weight_records_to_csv', { records }); + text = csv; + href = createCSVLink(text); + valid = true; + weightedRecords = weighted; + } catch (err) { + error = err as string; + } + + const fileContent: FileContents = { + text, + filename: file.name, + href, + }; + const contents: Contents = { + id: crypto.randomUUID(), + fileContent, + valid, + error, + selected: false, + price: 0, + records: weightedRecords, + notCards, + fixedNames, + }; + + return contents; +}; diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 00000000..f96f659e --- /dev/null +++ b/src/main.ts @@ -0,0 +1,20 @@ +import { createApp } from 'vue'; +import './style.css'; +import App from './App.vue'; + +createApp(App).mount('#app'); + +import { invoke } from '@tauri-apps/api'; + +invoke('get_hashmap').then(r => { + console.log(r); +}); + +// import { InvokeArgs } from '@tauri-apps/api/tauri'; +// const r = command('read_polish_csv', { +// csvString: `stackSize,,name,calculated,total +// 49,The Opulent,1.0,49.0 +// 0,The Price of Devotion,5772.65,0.0 +// 0,Perfection,3.0,0.0 +// 65,Three Faces in the Dark,1.0,65.0`, +// }); diff --git a/src/style.css b/src/style.css new file mode 100644 index 00000000..a1a34d59 --- /dev/null +++ b/src/style.css @@ -0,0 +1,78 @@ +* { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +:root { + --bg-color: #242424; + --color: rgba(255, 255, 255, 0.87); + --border-color: #646cff; + + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + /* font-size: 16px; */ + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +/* h1 { + font-size: 3.2em; + line-height: 1.1; +} */ + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: var(--color); + background-color: var(--bg-color); + /* color: #213547; */ + /* background-color: #ffffff; */ + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} + +input { + font: inherit; +} diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 00000000..9ce6e745 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,75 @@ +export interface FileContents { + text: string; + filename: string; + href: string; +} + +export type DivCsvLine = [number, string, number | null, number | null]; + +export interface CommandList { + weight_records_to_csv: { + args: { records: CardRecord[] }; + returnType: Promise<{ + csv: string; + records: WeightedCardRecord[]; + }>; + }; + update_prices: { + args: {}; + returnType: Promise; + }; + merge_csv: { + args: { + /** List of Csv files as strings */ + csvFileStrings: string[]; + }; + returnType: Promise; + }; + read_polish_csv: { + args: { + /** Csv file as string */ + csvString: string; + }; + returnType: Promise<{ + csv: string; + records: CardRecord[]; + notCards: string[]; + fixedNames: Record; + }>; + }; + total_chaos: { + args: { + /** Csv file as string */ + csvString: string; + minimumCardPrice: number; + }; + returnType: Promise; + }; +} + +export interface CardRecord { + stackSize: number; + name: string; + calculated: number; + total: number; +} + +export type WeightedCardRecord = CardRecord & { realWeight: number }; + +export interface Contents { + fileContent: FileContents; + selected: boolean | null; + id: string; + valid: boolean; + error: string | null; + price: number; + records: WeightedCardRecord[]; + notCards: string[]; + fixedNames: Record; +} + +export type Order = 'asc' | 'desc'; +export type Column = 'price' | 'stackSize' | 'total'; +export type SortState = { + [col in Column]: Order; +} & { activeColumn: Column }; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 00000000..323c78a6 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,7 @@ +/// + +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..d4aefa2c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": ["ESNext", "DOM"], + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 00000000..9d31e2ae --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 00000000..315212d6 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()] +})