├── .eslintignore
├── .eslintrc.cjs
├── .gitignore
├── .npmrc
├── .vscode
├── extensions.json
└── settings.json
├── LICENSE.md
├── README.md
├── index.html
├── package.json
├── pnpm-lock.yaml
├── postcss.config.cjs
├── public
├── favicon.ico
└── icons
│ ├── apple-icon-120x120.png
│ ├── apple-icon-152x152.png
│ ├── apple-icon-167x167.png
│ ├── apple-icon-180x180.png
│ ├── favicon-128x128.png
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon-96x96.png
│ ├── icon-128x128.png
│ ├── icon-192x192.png
│ ├── icon-256x256.png
│ ├── icon-384x384.png
│ ├── icon-512x512.png
│ ├── ms-icon-144x144.png
│ └── safari-pinned-tab.svg
├── quasar.config.js
├── quasar.extensions.json
├── src-tauri
├── .gitignore
├── Cargo.lock
├── Cargo.toml
├── build.rs
├── icons
│ ├── 128x128.png
│ ├── 128x128@2x.png
│ ├── 32x32.png
│ ├── icon.icns
│ └── icon.ico
├── src
│ ├── epub.rs
│ ├── epub
│ │ └── template.rs
│ └── main.rs
└── tauri.conf.json
├── src
├── App.vue
├── assets
│ └── quasar-logo-vertical.svg
├── auto-imports.d.ts
├── boot
│ ├── .gitkeep
│ └── unocss.ts
├── components.d.ts
├── components
│ ├── ImagePreview.vue
│ ├── MainHeader.vue
│ └── SetMeta.vue
├── composables
│ ├── use-drawer.ts
│ ├── use-images.ts
│ ├── use-loading.ts
│ ├── use-meta.ts
│ └── use-options.ts
├── css
│ ├── app.scss
│ └── quasar.variables.scss
├── elepub.d.ts
├── env.d.ts
├── layouts
│ └── MainLayout.vue
├── pages
│ └── index.vue
├── quasar.d.ts
├── router
│ └── index.ts
├── shims-vue.d.ts
├── ssg-flag.d.ts
├── ssg.d.ts
├── stores
│ ├── index.ts
│ └── store-flag.d.ts
└── utils
│ └── index.ts
├── tsconfig.json
└── unocss.config.ts
/.eslintignore:
--------------------------------------------------------------------------------
1 | /dist
2 | /src-capacitor
3 | /src-cordova
4 | /.quasar
5 | /node_modules
6 | .eslintrc.js
7 | /src-ssr
8 |
--------------------------------------------------------------------------------
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 |
4 | env: {
5 | browser: true,
6 | es2021: true,
7 | node: true,
8 | 'vue/setup-compiler-macros': true,
9 | },
10 |
11 | extends: [
12 | '@taiyuuki/eslint-config-vue-unimport',
13 | ],
14 |
15 | globals: {
16 | ga: 'readonly', // Google Analytics
17 | cordova: 'readonly',
18 | __statics: 'readonly',
19 | __QUASAR_SSR__: 'readonly',
20 | __QUASAR_SSR_SERVER__: 'readonly',
21 | __QUASAR_SSR_CLIENT__: 'readonly',
22 | __QUASAR_SSR_PWA__: 'readonly',
23 | process: 'readonly',
24 | Capacitor: 'readonly',
25 | chrome: 'readonly',
26 | },
27 | rules: {
28 | 'import/no-unresolved':
29 | ['error', {
30 | 'ignore': [
31 | '~pages',
32 | 'uno.css',
33 | 'virtual:generated-layouts',
34 | 'virtual:generated-pages',
35 | 'virtual:vue-component-preview',
36 | ],
37 | }],
38 | },
39 | }
40 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .thumbs.db
3 | node_modules
4 |
5 | # Quasar core related directories
6 | .quasar
7 | /dist
8 |
9 | # Cordova related directories and files
10 | /src-cordova/node_modules
11 | /src-cordova/platforms
12 | /src-cordova/plugins
13 | /src-cordova/www
14 |
15 | # Capacitor related directories and files
16 | /src-capacitor/www
17 | /src-capacitor/node_modules
18 |
19 | # BEX related directories and files
20 | /src-bex/www
21 | /src-bex/js/core
22 |
23 | # Log files
24 | npm-debug.log*
25 | yarn-debug.log*
26 | yarn-error.log*
27 |
28 | # Editor directories and files
29 | .idea
30 | *.suo
31 | *.ntvs*
32 | *.njsproj
33 | *.sln
34 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | # pnpm-related options
2 | shamefully-hoist=true
3 | strict-peer-dependencies=false
4 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "Vue.volar",
4 | "tauri-apps.tauri-vscode",
5 | "rust-lang.rust-analyzer"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "rust-analyzer.linkedProjects": [
3 | ".\\src-tauri\\Cargo.toml",
4 | ".\\src-tauri\\Cargo.toml"
5 | ]
6 | }
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2022-2023 Taiyuuki
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sub license, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | elepub
7 |
8 |
9 |
10 |
11 |
12 | 将漫画图片打包成 epub 的小工具,适配多看阅读,推荐用于条漫,页漫虽然也能用,但如果存在跨页,阅读体验不会好。
13 |
14 | ## 下载和使用
15 |
16 | - [Windows版下载](../../releases)
17 | - Mac版请下载源码自行打包,由于我并没有对其进行配置,如果打包失败,请参考Tauri的[文档](https://tauri.app/v1/guides/building/macos)。
18 | - [在线版](https://taiyuuki.github.io/elepub-web-build/)
19 | 在线版的生产速度会慢很多,且最大支持2GB的文档。如果图片较多、较大,建议使用Windows版。
20 |
21 | 导入图片如果遇到杀毒软件安全警告,请关闭杀毒软件或选择允许。开源项目,请放心使用。
22 |
23 | ## 更新 3.0.2
24 |
25 | * 3.0.2 修正创建日期
26 |
27 | * 3.0.1 修正bug 显示进度
28 |
29 | * `3.0.0`使用`Tauri`重构了整个项目,界面基本维持原样,但得益于`Tauri`使用`Rust`的优势,大幅提高了EPUB的生产速度(提速90%以上),大幅减少软件包大小(68MB→2.8MB),软件安装后占用也更小(150MB→6MB)。
30 |
31 | 如果遇到问题,欢迎提[issue](../../issues),我会尽快修复。
32 |
33 | Web + electron的版本理论上不再更新,但代码保留在本仓库[electron](../../tree/electron)分支。
34 |
35 | ## 项目运行
36 |
37 | 本项目使用 electron Tauri、Vue、Quasar 等框架开发。
38 |
39 | ### 安装依赖
40 |
41 | ```bash
42 | pnpm install
43 | ```
44 |
45 | ### 开发模式运行
46 |
47 | ```bash
48 | pnpm tauri dev
49 | ```
50 |
51 | ### 打包
52 |
53 | ```bash
54 | pnpm tauri build
55 | ```
56 | ### 打包报错
57 |
58 | 打包时如果遇到以下错误:
59 |
60 | ```bash
61 | [vite:resolve] Missing "./preload-helper" export in "vite" package
62 | ```
63 |
64 | 打开报错的文件(`\node_modules\vite\dist\node\chunks\dep-[hash].js`),找到`vite/preload-helper`,将其改为`\0vite/preload-helper`,然后重新打包即可。
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <%= productName %>
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "elepub",
3 | "version": "3.0.2",
4 | "description": "多看漫画制作工具",
5 | "productName": "多看漫画制作",
6 | "author": "taiyuuki ",
7 | "private": true,
8 | "scripts": {
9 | "lint": "eslint --ext .js,.ts,.vue ./src --fix",
10 | "dev": "quasar ssg dev",
11 | "build": "quasar ssg generate",
12 | "tauri:dev": "tauri dev",
13 | "tauri:build": "tauri build",
14 | "serve:ssg": "quasar ssg serve dist/ssg"
15 | },
16 | "dependencies": {
17 | "@quasar/extras": "^1.16.7",
18 | "@taiyuuki/utils": "^0.4.6",
19 | "pinia": "^2.1.6",
20 | "quasar": "^2.12.7",
21 | "vue": "^3.3.4",
22 | "vue-router": "^4.2.5"
23 | },
24 | "devDependencies": {
25 | "@iconify-json/bi": "^1.1.20",
26 | "@iconify-json/flat-color-icons": "^1.1.7",
27 | "@iconify-json/ic": "^1.1.14",
28 | "@quasar/app-vite": "^1.6.2",
29 | "@taiyuuki/eslint-config-vue-unimport": "^0.0.9",
30 | "@taiyuuki/unocss-preset": "^0.0.4",
31 | "@tauri-apps/api": "^1.5.0",
32 | "@tauri-apps/cli": "^1.5.0",
33 | "@types/node": "^20.8.0",
34 | "@typescript-eslint/eslint-plugin": "^5.62.0",
35 | "@typescript-eslint/parser": "^5.62.0",
36 | "@unocss/preset-attributify": "^0.51.13",
37 | "@unocss/preset-icons": "^0.51.13",
38 | "@unocss/preset-uno": "^0.51.13",
39 | "autoprefixer": "^10.4.16",
40 | "eslint": "^8.50.0",
41 | "eslint-plugin-promise": "^6.1.1",
42 | "postcss": "^8.4.31",
43 | "quasar-app-extension-ssg": "^5.0.2",
44 | "typescript": "^4.9.5",
45 | "unocss": "^0.51.13",
46 | "unplugin-auto-import": "^0.16.6",
47 | "unplugin-vue-components": "^0.24.1",
48 | "vite": "^4.4.9",
49 | "vite-plugin-pages": "^0.29.1",
50 | "vite-plugin-vue-layouts": "^0.8.0"
51 | },
52 | "engines": {
53 | "node": "^18 || ^16 || ^14.19",
54 | "npm": ">= 6.13.4",
55 | "yarn": ">= 1.21.1"
56 | },
57 | "pnpm": {
58 | "peerDependencyRules": {
59 | "ignoreMissing": [
60 | "@vitejs/plugin-vue"
61 | ]
62 | }
63 | }
64 | }
--------------------------------------------------------------------------------
/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // https://github.com/michael-ciniawsky/postcss-load-config
3 |
4 | module.exports = {
5 | plugins: [
6 | // https://github.com/postcss/autoprefixer
7 | require('autoprefixer')({
8 | overrideBrowserslist: [
9 | 'last 4 Chrome versions',
10 | 'last 4 Firefox versions',
11 | 'last 4 Edge versions',
12 | 'last 4 Safari versions',
13 | 'last 4 Android versions',
14 | 'last 4 ChromeAndroid versions',
15 | 'last 4 FirefoxAndroid versions',
16 | 'last 4 iOS versions'
17 | ]
18 | })
19 |
20 | // https://github.com/elchininet/postcss-rtlcss
21 | // If you want to support RTL css, then
22 | // 1. yarn/npm install postcss-rtlcss
23 | // 2. optionally set quasar.config.js > framework > lang to an RTL language
24 | // 3. uncomment the following line:
25 | // require('postcss-rtlcss')
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/favicon.ico
--------------------------------------------------------------------------------
/public/icons/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/apple-icon-120x120.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/apple-icon-152x152.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-167x167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/apple-icon-167x167.png
--------------------------------------------------------------------------------
/public/icons/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/apple-icon-180x180.png
--------------------------------------------------------------------------------
/public/icons/favicon-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/favicon-128x128.png
--------------------------------------------------------------------------------
/public/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/public/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/public/icons/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/favicon-96x96.png
--------------------------------------------------------------------------------
/public/icons/icon-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/icon-128x128.png
--------------------------------------------------------------------------------
/public/icons/icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/icon-192x192.png
--------------------------------------------------------------------------------
/public/icons/icon-256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/icon-256x256.png
--------------------------------------------------------------------------------
/public/icons/icon-384x384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/icon-384x384.png
--------------------------------------------------------------------------------
/public/icons/icon-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/icon-512x512.png
--------------------------------------------------------------------------------
/public/icons/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/public/icons/ms-icon-144x144.png
--------------------------------------------------------------------------------
/public/icons/safari-pinned-tab.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/quasar.config.js:
--------------------------------------------------------------------------------
1 | /* eslint-env node */
2 |
3 | /*
4 | * This file runs in a Node context (it's NOT transpiled by Babel), so use only
5 | * the ES6 features that are supported by your Node version. https://node.green/
6 | */
7 |
8 | // Configuration for your app
9 | // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js
10 |
11 | const { join } = require('path')
12 | const { configure } = require('quasar/wrappers')
13 |
14 | const isPro = process.env.NODE_ENV === 'production'
15 |
16 | function resolve(dir) {
17 | join(__dirname, dir)
18 | }
19 |
20 | module.exports = configure(function (/* ctx */) {
21 | return {
22 | eslint: {
23 | // fix: true,
24 | // include: [],
25 | // exclude: [],
26 | // rawOptions: {},
27 | warnings: true,
28 | errors: true,
29 | },
30 |
31 | alias: {
32 | '@': resolve('src'),
33 | src: resolve('src'),
34 | components: resolve('src/components'),
35 | boot: resolve('src/boot'),
36 | layouts: resolve('src/layouts'),
37 | pages: resolve('src/pages'),
38 | router: resolve('src/router'),
39 | stores: resolve('src/stores'),
40 | assets: resolve('src/assets'),
41 | },
42 |
43 | // https://v2.quasar.dev/quasar-cli-vite/prefetch-feature
44 | // preFetch: true,
45 |
46 | // app boot file (/src/boot)
47 | // --> boot files are part of "main.js"
48 | // https://v2.quasar.dev/quasar-cli-vite/boot-files
49 | boot: [
50 | 'unocss',
51 | ],
52 |
53 | // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css
54 | css: [
55 | 'app.scss',
56 | ],
57 |
58 | // https://github.com/quasarframework/quasar/tree/dev/extras
59 | extras: [
60 | // 'ionicons-v4',
61 | // 'mdi-v5',
62 | // 'fontawesome-v6',
63 | // 'eva-icons',
64 | // 'themify',
65 | // 'line-awesome',
66 | // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
67 |
68 | // 'roboto-font', // optional, you are not bound to it
69 | // 'material-icons', // optional, you are not bound to it
70 | 'mdi-v6',
71 | ],
72 |
73 | // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build
74 | build: {
75 | target: {
76 | browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'],
77 | node: 'node16',
78 | },
79 |
80 | vueRouterMode: 'hash', // available values: 'hash', 'history'
81 | // vueRouterBase,
82 | // vueDevtools,
83 | // vueOptionsAPI: false,
84 |
85 | // rebuildCache: true, // rebuilds Vite/linter/etc cache on startup
86 |
87 | // publicPath: '/',
88 | // analyze: true,
89 | // env: {},
90 | // rawDefine: {}
91 | // ignorePublicFolder: true,
92 | // minify: false,
93 | // polyfillModulePreload: true,
94 | // distDir
95 |
96 | extendViteConf(viteConf) {
97 | viteConf.base = '/'
98 | viteConf.clearScreen = false
99 | // viteConf.server = {
100 | // strictPort: true,
101 | // }
102 | viteConf.envPrefix = ['VITE_', 'TAURI_']
103 | viteConf.build.target = process.env.TAURI_PLATFORM === 'windows' ? 'chrome105' : 'safari13'
104 | viteConf.minify = process.env.TAURI_DEBUG ? false : 'esbuild'
105 | viteConf.sourcemap = !!process.env.TAURI_DEBUG
106 |
107 | if (!isPro) {
108 | viteConf.server.hmr = { overlay: false }
109 | }
110 | },
111 | // viteVuePluginOptions: {},
112 |
113 | vitePlugins: [
114 | ['vite-plugin-pages', {
115 | extensions: ['vue'],
116 | extendRoute(route) {
117 | if (route.path === '/') {
118 | return route
119 | }
120 | return {
121 | ...route,
122 | meta: { auth: true },
123 | }
124 | },
125 | }],
126 | [
127 | 'vite-plugin-vue-layouts',
128 | { defaultLayout: 'MainLayout' },
129 | ],
130 | [
131 | 'unplugin-vue-components/vite',
132 | {
133 | dts: 'src/components.d.ts',
134 | },
135 | ],
136 | [
137 | 'unplugin-auto-import/vite',
138 | {
139 | imports: [
140 | 'vue',
141 | 'pinia',
142 | 'vue-router',
143 | {
144 | quasar: [
145 | 'useQuasar',
146 | 'Notify',
147 | 'Dialog',
148 | ],
149 | 'quasar/wrappers': ['boot'],
150 | },
151 | ],
152 | dts: 'src/auto-imports.d.ts',
153 | },
154 | ],
155 | ['unocss/vite', {/** unocss options */ }],
156 | ],
157 | },
158 |
159 | // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#devServer
160 | devServer: {
161 | // https: true
162 | open: false, // opens browser window automatically
163 | },
164 |
165 | // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#framework
166 | framework: {
167 | config: {},
168 |
169 | // iconSet: 'material-icons', // Quasar icon set
170 | lang: 'zh-CN', // Quasar language pack
171 |
172 | // For special cases outside of where the auto-import strategy can have an impact
173 | // (like functional components as one of the examples),
174 | // you can manually specify Quasar components/directives to be available everywhere:
175 | //
176 | // components: [],
177 | // directives: [],
178 |
179 | // Quasar plugins
180 | plugins: ['Notify', 'Dialog'],
181 | },
182 |
183 | // animations: 'all', // --- includes all animations
184 | // https://v2.quasar.dev/options/animations
185 | animations: [],
186 |
187 | // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#sourcefiles
188 | // sourceFiles: {
189 | // rootComponent: 'src/App.vue',
190 | // router: 'src/router/index',
191 | // store: 'src/store/index',
192 | // registerServiceWorker: 'src-pwa/register-service-worker',
193 | // serviceWorker: 'src-pwa/custom-service-worker',
194 | // pwaManifestFile: 'src-pwa/manifest.json',
195 | // electronMain: 'src-electron/electron-main',
196 | // electronPreload: 'src-electron/electron-preload'
197 | // },
198 |
199 | ssg: {
200 | inlineCriticalCss: false,
201 | },
202 |
203 | // https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr
204 | ssr: {
205 | // ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name!
206 | // will mess up SSR
207 |
208 | // extendSSRWebserverConf (esbuildConf) {},
209 | // extendPackageJson (json) {},
210 |
211 | pwa: false,
212 |
213 | // manualStoreHydration: true,
214 | // manualPostHydrationTrigger: true,
215 |
216 | prodPort: 3000, // The default port that the production server should use
217 | // (gets superseded if process.env.PORT is specified at runtime)
218 |
219 | middlewares: [
220 | 'render', // keep this as last one
221 | ],
222 | },
223 |
224 | // https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa
225 | pwa: {
226 | workboxMode: 'generateSW', // or 'injectManifest'
227 | injectPwaMetaTags: true,
228 | swFilename: 'sw.js',
229 | manifestFilename: 'manifest.json',
230 | useCredentialsForManifestTag: false,
231 | // useFilenameHashes: true,
232 | // extendGenerateSWOptions (cfg) {}
233 | // extendInjectManifestOptions (cfg) {},
234 | // extendManifestJson (json) {}
235 | // extendPWACustomSWConf (esbuildConf) {}
236 | },
237 |
238 | // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-cordova-apps/configuring-cordova
239 | cordova: {
240 | // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
241 | },
242 |
243 | // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-capacitor-apps/configuring-capacitor
244 | capacitor: {
245 | hideSplashscreen: true,
246 | },
247 |
248 | // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron
249 | electron: {
250 | // extendElectronMainConf (esbuildConf)
251 | // extendElectronPreloadConf (esbuildConf)
252 |
253 | inspectPort: 5858,
254 |
255 | bundler: 'packager', // 'packager' or 'builder'
256 |
257 | packager: {
258 | // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
259 |
260 | // OS X / Mac App Store
261 | // appBundleId: '',
262 | // appCategoryType: '',
263 | // osxSign: '',
264 | // protocol: 'myapp://path',
265 |
266 | // Windows only
267 | // win32metadata: { ... }
268 | },
269 |
270 | builder: {
271 | // https://www.electron.build/configuration/configuration
272 |
273 | appId: 'elepub',
274 | },
275 | },
276 |
277 | // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex
278 | bex: {
279 | contentScripts: [
280 | 'my-content-script',
281 | ],
282 |
283 | // extendBexScriptsConf (esbuildConf) {}
284 | // extendBexManifestJson (json) {}
285 | },
286 | }
287 | })
288 |
--------------------------------------------------------------------------------
/quasar.extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "ssg": {
3 | "scripts": true,
4 | "IDE": true,
5 | "inlineCriticalCss": true
6 | }
7 | }
--------------------------------------------------------------------------------
/src-tauri/.gitignore:
--------------------------------------------------------------------------------
1 | # Generated by Cargo
2 | # will have compiled files and executables
3 | /target/
4 |
--------------------------------------------------------------------------------
/src-tauri/Cargo.lock:
--------------------------------------------------------------------------------
1 | # This file is automatically @generated by Cargo.
2 | # It is not intended for manual editing.
3 | version = 3
4 |
5 | [[package]]
6 | name = "adler"
7 | version = "1.0.2"
8 | source = "registry+https://github.com/rust-lang/crates.io-index"
9 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
10 |
11 | [[package]]
12 | name = "aes"
13 | version = "0.8.3"
14 | source = "registry+https://github.com/rust-lang/crates.io-index"
15 | checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
16 | dependencies = [
17 | "cfg-if",
18 | "cipher",
19 | "cpufeatures",
20 | ]
21 |
22 | [[package]]
23 | name = "aho-corasick"
24 | version = "0.7.20"
25 | source = "registry+https://github.com/rust-lang/crates.io-index"
26 | checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
27 | dependencies = [
28 | "memchr",
29 | ]
30 |
31 | [[package]]
32 | name = "aho-corasick"
33 | version = "1.0.1"
34 | source = "registry+https://github.com/rust-lang/crates.io-index"
35 | checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
36 | dependencies = [
37 | "memchr",
38 | ]
39 |
40 | [[package]]
41 | name = "alloc-no-stdlib"
42 | version = "2.0.4"
43 | source = "registry+https://github.com/rust-lang/crates.io-index"
44 | checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
45 |
46 | [[package]]
47 | name = "alloc-stdlib"
48 | version = "0.2.2"
49 | source = "registry+https://github.com/rust-lang/crates.io-index"
50 | checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
51 | dependencies = [
52 | "alloc-no-stdlib",
53 | ]
54 |
55 | [[package]]
56 | name = "android_system_properties"
57 | version = "0.1.5"
58 | source = "registry+https://github.com/rust-lang/crates.io-index"
59 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
60 | dependencies = [
61 | "libc",
62 | ]
63 |
64 | [[package]]
65 | name = "anyhow"
66 | version = "1.0.71"
67 | source = "registry+https://github.com/rust-lang/crates.io-index"
68 | checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
69 |
70 | [[package]]
71 | name = "app"
72 | version = "0.1.0"
73 | dependencies = [
74 | "serde",
75 | "serde_json",
76 | "tauri",
77 | "tauri-build",
78 | "zip",
79 | ]
80 |
81 | [[package]]
82 | name = "atk"
83 | version = "0.15.1"
84 | source = "registry+https://github.com/rust-lang/crates.io-index"
85 | checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd"
86 | dependencies = [
87 | "atk-sys",
88 | "bitflags",
89 | "glib",
90 | "libc",
91 | ]
92 |
93 | [[package]]
94 | name = "atk-sys"
95 | version = "0.15.1"
96 | source = "registry+https://github.com/rust-lang/crates.io-index"
97 | checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6"
98 | dependencies = [
99 | "glib-sys",
100 | "gobject-sys",
101 | "libc",
102 | "system-deps 6.1.0",
103 | ]
104 |
105 | [[package]]
106 | name = "autocfg"
107 | version = "1.1.0"
108 | source = "registry+https://github.com/rust-lang/crates.io-index"
109 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
110 |
111 | [[package]]
112 | name = "base64"
113 | version = "0.13.1"
114 | source = "registry+https://github.com/rust-lang/crates.io-index"
115 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
116 |
117 | [[package]]
118 | name = "base64"
119 | version = "0.21.0"
120 | source = "registry+https://github.com/rust-lang/crates.io-index"
121 | checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
122 |
123 | [[package]]
124 | name = "base64ct"
125 | version = "1.6.0"
126 | source = "registry+https://github.com/rust-lang/crates.io-index"
127 | checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
128 |
129 | [[package]]
130 | name = "bitflags"
131 | version = "1.3.2"
132 | source = "registry+https://github.com/rust-lang/crates.io-index"
133 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
134 |
135 | [[package]]
136 | name = "block"
137 | version = "0.1.6"
138 | source = "registry+https://github.com/rust-lang/crates.io-index"
139 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
140 |
141 | [[package]]
142 | name = "block-buffer"
143 | version = "0.10.4"
144 | source = "registry+https://github.com/rust-lang/crates.io-index"
145 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
146 | dependencies = [
147 | "generic-array",
148 | ]
149 |
150 | [[package]]
151 | name = "brotli"
152 | version = "3.3.4"
153 | source = "registry+https://github.com/rust-lang/crates.io-index"
154 | checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
155 | dependencies = [
156 | "alloc-no-stdlib",
157 | "alloc-stdlib",
158 | "brotli-decompressor",
159 | ]
160 |
161 | [[package]]
162 | name = "brotli-decompressor"
163 | version = "2.3.4"
164 | source = "registry+https://github.com/rust-lang/crates.io-index"
165 | checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744"
166 | dependencies = [
167 | "alloc-no-stdlib",
168 | "alloc-stdlib",
169 | ]
170 |
171 | [[package]]
172 | name = "bstr"
173 | version = "1.4.0"
174 | source = "registry+https://github.com/rust-lang/crates.io-index"
175 | checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09"
176 | dependencies = [
177 | "memchr",
178 | "serde",
179 | ]
180 |
181 | [[package]]
182 | name = "bumpalo"
183 | version = "3.12.2"
184 | source = "registry+https://github.com/rust-lang/crates.io-index"
185 | checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b"
186 |
187 | [[package]]
188 | name = "bytemuck"
189 | version = "1.13.1"
190 | source = "registry+https://github.com/rust-lang/crates.io-index"
191 | checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
192 |
193 | [[package]]
194 | name = "byteorder"
195 | version = "1.4.3"
196 | source = "registry+https://github.com/rust-lang/crates.io-index"
197 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
198 |
199 | [[package]]
200 | name = "bytes"
201 | version = "1.4.0"
202 | source = "registry+https://github.com/rust-lang/crates.io-index"
203 | checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
204 |
205 | [[package]]
206 | name = "bzip2"
207 | version = "0.4.4"
208 | source = "registry+https://github.com/rust-lang/crates.io-index"
209 | checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
210 | dependencies = [
211 | "bzip2-sys",
212 | "libc",
213 | ]
214 |
215 | [[package]]
216 | name = "bzip2-sys"
217 | version = "0.1.11+1.0.8"
218 | source = "registry+https://github.com/rust-lang/crates.io-index"
219 | checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
220 | dependencies = [
221 | "cc",
222 | "libc",
223 | "pkg-config",
224 | ]
225 |
226 | [[package]]
227 | name = "cairo-rs"
228 | version = "0.15.12"
229 | source = "registry+https://github.com/rust-lang/crates.io-index"
230 | checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc"
231 | dependencies = [
232 | "bitflags",
233 | "cairo-sys-rs",
234 | "glib",
235 | "libc",
236 | "thiserror",
237 | ]
238 |
239 | [[package]]
240 | name = "cairo-sys-rs"
241 | version = "0.15.1"
242 | source = "registry+https://github.com/rust-lang/crates.io-index"
243 | checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
244 | dependencies = [
245 | "glib-sys",
246 | "libc",
247 | "system-deps 6.1.0",
248 | ]
249 |
250 | [[package]]
251 | name = "cargo_toml"
252 | version = "0.15.2"
253 | source = "registry+https://github.com/rust-lang/crates.io-index"
254 | checksum = "7f83bc2e401ed041b7057345ebc488c005efa0341d5541ce7004d30458d0090b"
255 | dependencies = [
256 | "serde",
257 | "toml 0.7.3",
258 | ]
259 |
260 | [[package]]
261 | name = "cc"
262 | version = "1.0.79"
263 | source = "registry+https://github.com/rust-lang/crates.io-index"
264 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
265 | dependencies = [
266 | "jobserver",
267 | ]
268 |
269 | [[package]]
270 | name = "cesu8"
271 | version = "1.1.0"
272 | source = "registry+https://github.com/rust-lang/crates.io-index"
273 | checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
274 |
275 | [[package]]
276 | name = "cfb"
277 | version = "0.7.3"
278 | source = "registry+https://github.com/rust-lang/crates.io-index"
279 | checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f"
280 | dependencies = [
281 | "byteorder",
282 | "fnv",
283 | "uuid",
284 | ]
285 |
286 | [[package]]
287 | name = "cfg-expr"
288 | version = "0.9.1"
289 | source = "registry+https://github.com/rust-lang/crates.io-index"
290 | checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7"
291 | dependencies = [
292 | "smallvec",
293 | ]
294 |
295 | [[package]]
296 | name = "cfg-expr"
297 | version = "0.15.1"
298 | source = "registry+https://github.com/rust-lang/crates.io-index"
299 | checksum = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9"
300 | dependencies = [
301 | "smallvec",
302 | "target-lexicon",
303 | ]
304 |
305 | [[package]]
306 | name = "cfg-if"
307 | version = "1.0.0"
308 | source = "registry+https://github.com/rust-lang/crates.io-index"
309 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
310 |
311 | [[package]]
312 | name = "chrono"
313 | version = "0.4.24"
314 | source = "registry+https://github.com/rust-lang/crates.io-index"
315 | checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
316 | dependencies = [
317 | "iana-time-zone",
318 | "num-integer",
319 | "num-traits",
320 | "serde",
321 | "winapi",
322 | ]
323 |
324 | [[package]]
325 | name = "cipher"
326 | version = "0.4.4"
327 | source = "registry+https://github.com/rust-lang/crates.io-index"
328 | checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
329 | dependencies = [
330 | "crypto-common",
331 | "inout",
332 | ]
333 |
334 | [[package]]
335 | name = "cocoa"
336 | version = "0.24.1"
337 | source = "registry+https://github.com/rust-lang/crates.io-index"
338 | checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
339 | dependencies = [
340 | "bitflags",
341 | "block",
342 | "cocoa-foundation",
343 | "core-foundation",
344 | "core-graphics",
345 | "foreign-types",
346 | "libc",
347 | "objc",
348 | ]
349 |
350 | [[package]]
351 | name = "cocoa-foundation"
352 | version = "0.1.1"
353 | source = "registry+https://github.com/rust-lang/crates.io-index"
354 | checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6"
355 | dependencies = [
356 | "bitflags",
357 | "block",
358 | "core-foundation",
359 | "core-graphics-types",
360 | "foreign-types",
361 | "libc",
362 | "objc",
363 | ]
364 |
365 | [[package]]
366 | name = "color_quant"
367 | version = "1.1.0"
368 | source = "registry+https://github.com/rust-lang/crates.io-index"
369 | checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
370 |
371 | [[package]]
372 | name = "combine"
373 | version = "4.6.6"
374 | source = "registry+https://github.com/rust-lang/crates.io-index"
375 | checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
376 | dependencies = [
377 | "bytes",
378 | "memchr",
379 | ]
380 |
381 | [[package]]
382 | name = "constant_time_eq"
383 | version = "0.1.5"
384 | source = "registry+https://github.com/rust-lang/crates.io-index"
385 | checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
386 |
387 | [[package]]
388 | name = "convert_case"
389 | version = "0.4.0"
390 | source = "registry+https://github.com/rust-lang/crates.io-index"
391 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
392 |
393 | [[package]]
394 | name = "core-foundation"
395 | version = "0.9.3"
396 | source = "registry+https://github.com/rust-lang/crates.io-index"
397 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
398 | dependencies = [
399 | "core-foundation-sys",
400 | "libc",
401 | ]
402 |
403 | [[package]]
404 | name = "core-foundation-sys"
405 | version = "0.8.4"
406 | source = "registry+https://github.com/rust-lang/crates.io-index"
407 | checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
408 |
409 | [[package]]
410 | name = "core-graphics"
411 | version = "0.22.3"
412 | source = "registry+https://github.com/rust-lang/crates.io-index"
413 | checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
414 | dependencies = [
415 | "bitflags",
416 | "core-foundation",
417 | "core-graphics-types",
418 | "foreign-types",
419 | "libc",
420 | ]
421 |
422 | [[package]]
423 | name = "core-graphics-types"
424 | version = "0.1.1"
425 | source = "registry+https://github.com/rust-lang/crates.io-index"
426 | checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
427 | dependencies = [
428 | "bitflags",
429 | "core-foundation",
430 | "foreign-types",
431 | "libc",
432 | ]
433 |
434 | [[package]]
435 | name = "cpufeatures"
436 | version = "0.2.7"
437 | source = "registry+https://github.com/rust-lang/crates.io-index"
438 | checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58"
439 | dependencies = [
440 | "libc",
441 | ]
442 |
443 | [[package]]
444 | name = "crc32fast"
445 | version = "1.3.2"
446 | source = "registry+https://github.com/rust-lang/crates.io-index"
447 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
448 | dependencies = [
449 | "cfg-if",
450 | ]
451 |
452 | [[package]]
453 | name = "crossbeam-channel"
454 | version = "0.5.8"
455 | source = "registry+https://github.com/rust-lang/crates.io-index"
456 | checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
457 | dependencies = [
458 | "cfg-if",
459 | "crossbeam-utils",
460 | ]
461 |
462 | [[package]]
463 | name = "crossbeam-utils"
464 | version = "0.8.15"
465 | source = "registry+https://github.com/rust-lang/crates.io-index"
466 | checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
467 | dependencies = [
468 | "cfg-if",
469 | ]
470 |
471 | [[package]]
472 | name = "crypto-common"
473 | version = "0.1.6"
474 | source = "registry+https://github.com/rust-lang/crates.io-index"
475 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
476 | dependencies = [
477 | "generic-array",
478 | "typenum",
479 | ]
480 |
481 | [[package]]
482 | name = "cssparser"
483 | version = "0.27.2"
484 | source = "registry+https://github.com/rust-lang/crates.io-index"
485 | checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
486 | dependencies = [
487 | "cssparser-macros",
488 | "dtoa-short",
489 | "itoa 0.4.8",
490 | "matches",
491 | "phf 0.8.0",
492 | "proc-macro2",
493 | "quote",
494 | "smallvec",
495 | "syn 1.0.109",
496 | ]
497 |
498 | [[package]]
499 | name = "cssparser-macros"
500 | version = "0.6.0"
501 | source = "registry+https://github.com/rust-lang/crates.io-index"
502 | checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e"
503 | dependencies = [
504 | "quote",
505 | "syn 1.0.109",
506 | ]
507 |
508 | [[package]]
509 | name = "ctor"
510 | version = "0.1.26"
511 | source = "registry+https://github.com/rust-lang/crates.io-index"
512 | checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
513 | dependencies = [
514 | "quote",
515 | "syn 1.0.109",
516 | ]
517 |
518 | [[package]]
519 | name = "cty"
520 | version = "0.2.2"
521 | source = "registry+https://github.com/rust-lang/crates.io-index"
522 | checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
523 |
524 | [[package]]
525 | name = "darling"
526 | version = "0.20.1"
527 | source = "registry+https://github.com/rust-lang/crates.io-index"
528 | checksum = "0558d22a7b463ed0241e993f76f09f30b126687447751a8638587b864e4b3944"
529 | dependencies = [
530 | "darling_core",
531 | "darling_macro",
532 | ]
533 |
534 | [[package]]
535 | name = "darling_core"
536 | version = "0.20.1"
537 | source = "registry+https://github.com/rust-lang/crates.io-index"
538 | checksum = "ab8bfa2e259f8ee1ce5e97824a3c55ec4404a0d772ca7fa96bf19f0752a046eb"
539 | dependencies = [
540 | "fnv",
541 | "ident_case",
542 | "proc-macro2",
543 | "quote",
544 | "strsim",
545 | "syn 2.0.16",
546 | ]
547 |
548 | [[package]]
549 | name = "darling_macro"
550 | version = "0.20.1"
551 | source = "registry+https://github.com/rust-lang/crates.io-index"
552 | checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a"
553 | dependencies = [
554 | "darling_core",
555 | "quote",
556 | "syn 2.0.16",
557 | ]
558 |
559 | [[package]]
560 | name = "derive_more"
561 | version = "0.99.17"
562 | source = "registry+https://github.com/rust-lang/crates.io-index"
563 | checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
564 | dependencies = [
565 | "convert_case",
566 | "proc-macro2",
567 | "quote",
568 | "rustc_version",
569 | "syn 1.0.109",
570 | ]
571 |
572 | [[package]]
573 | name = "digest"
574 | version = "0.10.6"
575 | source = "registry+https://github.com/rust-lang/crates.io-index"
576 | checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
577 | dependencies = [
578 | "block-buffer",
579 | "crypto-common",
580 | "subtle",
581 | ]
582 |
583 | [[package]]
584 | name = "dirs-next"
585 | version = "2.0.0"
586 | source = "registry+https://github.com/rust-lang/crates.io-index"
587 | checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
588 | dependencies = [
589 | "cfg-if",
590 | "dirs-sys-next",
591 | ]
592 |
593 | [[package]]
594 | name = "dirs-sys-next"
595 | version = "0.1.2"
596 | source = "registry+https://github.com/rust-lang/crates.io-index"
597 | checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
598 | dependencies = [
599 | "libc",
600 | "redox_users",
601 | "winapi",
602 | ]
603 |
604 | [[package]]
605 | name = "dispatch"
606 | version = "0.2.0"
607 | source = "registry+https://github.com/rust-lang/crates.io-index"
608 | checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
609 |
610 | [[package]]
611 | name = "dtoa"
612 | version = "0.4.8"
613 | source = "registry+https://github.com/rust-lang/crates.io-index"
614 | checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
615 |
616 | [[package]]
617 | name = "dtoa-short"
618 | version = "0.3.3"
619 | source = "registry+https://github.com/rust-lang/crates.io-index"
620 | checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6"
621 | dependencies = [
622 | "dtoa",
623 | ]
624 |
625 | [[package]]
626 | name = "dunce"
627 | version = "1.0.4"
628 | source = "registry+https://github.com/rust-lang/crates.io-index"
629 | checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
630 |
631 | [[package]]
632 | name = "embed-resource"
633 | version = "2.1.1"
634 | source = "registry+https://github.com/rust-lang/crates.io-index"
635 | checksum = "80663502655af01a2902dff3f06869330782267924bf1788410b74edcd93770a"
636 | dependencies = [
637 | "cc",
638 | "rustc_version",
639 | "toml 0.7.3",
640 | "vswhom",
641 | "winreg",
642 | ]
643 |
644 | [[package]]
645 | name = "embed_plist"
646 | version = "1.2.2"
647 | source = "registry+https://github.com/rust-lang/crates.io-index"
648 | checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
649 |
650 | [[package]]
651 | name = "encoding_rs"
652 | version = "0.8.32"
653 | source = "registry+https://github.com/rust-lang/crates.io-index"
654 | checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
655 | dependencies = [
656 | "cfg-if",
657 | ]
658 |
659 | [[package]]
660 | name = "equivalent"
661 | version = "1.0.1"
662 | source = "registry+https://github.com/rust-lang/crates.io-index"
663 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
664 |
665 | [[package]]
666 | name = "errno"
667 | version = "0.3.1"
668 | source = "registry+https://github.com/rust-lang/crates.io-index"
669 | checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
670 | dependencies = [
671 | "errno-dragonfly",
672 | "libc",
673 | "windows-sys 0.48.0",
674 | ]
675 |
676 | [[package]]
677 | name = "errno-dragonfly"
678 | version = "0.1.2"
679 | source = "registry+https://github.com/rust-lang/crates.io-index"
680 | checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
681 | dependencies = [
682 | "cc",
683 | "libc",
684 | ]
685 |
686 | [[package]]
687 | name = "fastrand"
688 | version = "1.9.0"
689 | source = "registry+https://github.com/rust-lang/crates.io-index"
690 | checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
691 | dependencies = [
692 | "instant",
693 | ]
694 |
695 | [[package]]
696 | name = "fdeflate"
697 | version = "0.3.0"
698 | source = "registry+https://github.com/rust-lang/crates.io-index"
699 | checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
700 | dependencies = [
701 | "simd-adler32",
702 | ]
703 |
704 | [[package]]
705 | name = "field-offset"
706 | version = "0.3.5"
707 | source = "registry+https://github.com/rust-lang/crates.io-index"
708 | checksum = "a3cf3a800ff6e860c863ca6d4b16fd999db8b752819c1606884047b73e468535"
709 | dependencies = [
710 | "memoffset",
711 | "rustc_version",
712 | ]
713 |
714 | [[package]]
715 | name = "filetime"
716 | version = "0.2.21"
717 | source = "registry+https://github.com/rust-lang/crates.io-index"
718 | checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153"
719 | dependencies = [
720 | "cfg-if",
721 | "libc",
722 | "redox_syscall 0.2.16",
723 | "windows-sys 0.48.0",
724 | ]
725 |
726 | [[package]]
727 | name = "flate2"
728 | version = "1.0.26"
729 | source = "registry+https://github.com/rust-lang/crates.io-index"
730 | checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
731 | dependencies = [
732 | "crc32fast",
733 | "miniz_oxide",
734 | ]
735 |
736 | [[package]]
737 | name = "fnv"
738 | version = "1.0.7"
739 | source = "registry+https://github.com/rust-lang/crates.io-index"
740 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
741 |
742 | [[package]]
743 | name = "foreign-types"
744 | version = "0.3.2"
745 | source = "registry+https://github.com/rust-lang/crates.io-index"
746 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
747 | dependencies = [
748 | "foreign-types-shared",
749 | ]
750 |
751 | [[package]]
752 | name = "foreign-types-shared"
753 | version = "0.1.1"
754 | source = "registry+https://github.com/rust-lang/crates.io-index"
755 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
756 |
757 | [[package]]
758 | name = "form_urlencoded"
759 | version = "1.1.0"
760 | source = "registry+https://github.com/rust-lang/crates.io-index"
761 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
762 | dependencies = [
763 | "percent-encoding",
764 | ]
765 |
766 | [[package]]
767 | name = "futf"
768 | version = "0.1.5"
769 | source = "registry+https://github.com/rust-lang/crates.io-index"
770 | checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
771 | dependencies = [
772 | "mac",
773 | "new_debug_unreachable",
774 | ]
775 |
776 | [[package]]
777 | name = "futures-channel"
778 | version = "0.3.28"
779 | source = "registry+https://github.com/rust-lang/crates.io-index"
780 | checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
781 | dependencies = [
782 | "futures-core",
783 | ]
784 |
785 | [[package]]
786 | name = "futures-core"
787 | version = "0.3.28"
788 | source = "registry+https://github.com/rust-lang/crates.io-index"
789 | checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
790 |
791 | [[package]]
792 | name = "futures-executor"
793 | version = "0.3.28"
794 | source = "registry+https://github.com/rust-lang/crates.io-index"
795 | checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
796 | dependencies = [
797 | "futures-core",
798 | "futures-task",
799 | "futures-util",
800 | ]
801 |
802 | [[package]]
803 | name = "futures-io"
804 | version = "0.3.28"
805 | source = "registry+https://github.com/rust-lang/crates.io-index"
806 | checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
807 |
808 | [[package]]
809 | name = "futures-macro"
810 | version = "0.3.28"
811 | source = "registry+https://github.com/rust-lang/crates.io-index"
812 | checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
813 | dependencies = [
814 | "proc-macro2",
815 | "quote",
816 | "syn 2.0.16",
817 | ]
818 |
819 | [[package]]
820 | name = "futures-task"
821 | version = "0.3.28"
822 | source = "registry+https://github.com/rust-lang/crates.io-index"
823 | checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
824 |
825 | [[package]]
826 | name = "futures-util"
827 | version = "0.3.28"
828 | source = "registry+https://github.com/rust-lang/crates.io-index"
829 | checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
830 | dependencies = [
831 | "futures-core",
832 | "futures-macro",
833 | "futures-task",
834 | "pin-project-lite",
835 | "pin-utils",
836 | "slab",
837 | ]
838 |
839 | [[package]]
840 | name = "fxhash"
841 | version = "0.2.1"
842 | source = "registry+https://github.com/rust-lang/crates.io-index"
843 | checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
844 | dependencies = [
845 | "byteorder",
846 | ]
847 |
848 | [[package]]
849 | name = "gdk"
850 | version = "0.15.4"
851 | source = "registry+https://github.com/rust-lang/crates.io-index"
852 | checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8"
853 | dependencies = [
854 | "bitflags",
855 | "cairo-rs",
856 | "gdk-pixbuf",
857 | "gdk-sys",
858 | "gio",
859 | "glib",
860 | "libc",
861 | "pango",
862 | ]
863 |
864 | [[package]]
865 | name = "gdk-pixbuf"
866 | version = "0.15.11"
867 | source = "registry+https://github.com/rust-lang/crates.io-index"
868 | checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a"
869 | dependencies = [
870 | "bitflags",
871 | "gdk-pixbuf-sys",
872 | "gio",
873 | "glib",
874 | "libc",
875 | ]
876 |
877 | [[package]]
878 | name = "gdk-pixbuf-sys"
879 | version = "0.15.10"
880 | source = "registry+https://github.com/rust-lang/crates.io-index"
881 | checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7"
882 | dependencies = [
883 | "gio-sys",
884 | "glib-sys",
885 | "gobject-sys",
886 | "libc",
887 | "system-deps 6.1.0",
888 | ]
889 |
890 | [[package]]
891 | name = "gdk-sys"
892 | version = "0.15.1"
893 | source = "registry+https://github.com/rust-lang/crates.io-index"
894 | checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88"
895 | dependencies = [
896 | "cairo-sys-rs",
897 | "gdk-pixbuf-sys",
898 | "gio-sys",
899 | "glib-sys",
900 | "gobject-sys",
901 | "libc",
902 | "pango-sys",
903 | "pkg-config",
904 | "system-deps 6.1.0",
905 | ]
906 |
907 | [[package]]
908 | name = "gdkwayland-sys"
909 | version = "0.15.3"
910 | source = "registry+https://github.com/rust-lang/crates.io-index"
911 | checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2"
912 | dependencies = [
913 | "gdk-sys",
914 | "glib-sys",
915 | "gobject-sys",
916 | "libc",
917 | "pkg-config",
918 | "system-deps 6.1.0",
919 | ]
920 |
921 | [[package]]
922 | name = "gdkx11-sys"
923 | version = "0.15.1"
924 | source = "registry+https://github.com/rust-lang/crates.io-index"
925 | checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178"
926 | dependencies = [
927 | "gdk-sys",
928 | "glib-sys",
929 | "libc",
930 | "system-deps 6.1.0",
931 | "x11",
932 | ]
933 |
934 | [[package]]
935 | name = "generator"
936 | version = "0.7.4"
937 | source = "registry+https://github.com/rust-lang/crates.io-index"
938 | checksum = "f3e123d9ae7c02966b4d892e550bdc32164f05853cd40ab570650ad600596a8a"
939 | dependencies = [
940 | "cc",
941 | "libc",
942 | "log",
943 | "rustversion",
944 | "windows 0.48.0",
945 | ]
946 |
947 | [[package]]
948 | name = "generic-array"
949 | version = "0.14.7"
950 | source = "registry+https://github.com/rust-lang/crates.io-index"
951 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
952 | dependencies = [
953 | "typenum",
954 | "version_check",
955 | ]
956 |
957 | [[package]]
958 | name = "getrandom"
959 | version = "0.1.16"
960 | source = "registry+https://github.com/rust-lang/crates.io-index"
961 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
962 | dependencies = [
963 | "cfg-if",
964 | "libc",
965 | "wasi 0.9.0+wasi-snapshot-preview1",
966 | ]
967 |
968 | [[package]]
969 | name = "getrandom"
970 | version = "0.2.9"
971 | source = "registry+https://github.com/rust-lang/crates.io-index"
972 | checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
973 | dependencies = [
974 | "cfg-if",
975 | "libc",
976 | "wasi 0.11.0+wasi-snapshot-preview1",
977 | ]
978 |
979 | [[package]]
980 | name = "gio"
981 | version = "0.15.12"
982 | source = "registry+https://github.com/rust-lang/crates.io-index"
983 | checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b"
984 | dependencies = [
985 | "bitflags",
986 | "futures-channel",
987 | "futures-core",
988 | "futures-io",
989 | "gio-sys",
990 | "glib",
991 | "libc",
992 | "once_cell",
993 | "thiserror",
994 | ]
995 |
996 | [[package]]
997 | name = "gio-sys"
998 | version = "0.15.10"
999 | source = "registry+https://github.com/rust-lang/crates.io-index"
1000 | checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d"
1001 | dependencies = [
1002 | "glib-sys",
1003 | "gobject-sys",
1004 | "libc",
1005 | "system-deps 6.1.0",
1006 | "winapi",
1007 | ]
1008 |
1009 | [[package]]
1010 | name = "glib"
1011 | version = "0.15.12"
1012 | source = "registry+https://github.com/rust-lang/crates.io-index"
1013 | checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d"
1014 | dependencies = [
1015 | "bitflags",
1016 | "futures-channel",
1017 | "futures-core",
1018 | "futures-executor",
1019 | "futures-task",
1020 | "glib-macros",
1021 | "glib-sys",
1022 | "gobject-sys",
1023 | "libc",
1024 | "once_cell",
1025 | "smallvec",
1026 | "thiserror",
1027 | ]
1028 |
1029 | [[package]]
1030 | name = "glib-macros"
1031 | version = "0.15.13"
1032 | source = "registry+https://github.com/rust-lang/crates.io-index"
1033 | checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a"
1034 | dependencies = [
1035 | "anyhow",
1036 | "heck 0.4.1",
1037 | "proc-macro-crate",
1038 | "proc-macro-error",
1039 | "proc-macro2",
1040 | "quote",
1041 | "syn 1.0.109",
1042 | ]
1043 |
1044 | [[package]]
1045 | name = "glib-sys"
1046 | version = "0.15.10"
1047 | source = "registry+https://github.com/rust-lang/crates.io-index"
1048 | checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
1049 | dependencies = [
1050 | "libc",
1051 | "system-deps 6.1.0",
1052 | ]
1053 |
1054 | [[package]]
1055 | name = "glob"
1056 | version = "0.3.1"
1057 | source = "registry+https://github.com/rust-lang/crates.io-index"
1058 | checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
1059 |
1060 | [[package]]
1061 | name = "globset"
1062 | version = "0.4.10"
1063 | source = "registry+https://github.com/rust-lang/crates.io-index"
1064 | checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc"
1065 | dependencies = [
1066 | "aho-corasick 0.7.20",
1067 | "bstr",
1068 | "fnv",
1069 | "log",
1070 | "regex",
1071 | ]
1072 |
1073 | [[package]]
1074 | name = "gobject-sys"
1075 | version = "0.15.10"
1076 | source = "registry+https://github.com/rust-lang/crates.io-index"
1077 | checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
1078 | dependencies = [
1079 | "glib-sys",
1080 | "libc",
1081 | "system-deps 6.1.0",
1082 | ]
1083 |
1084 | [[package]]
1085 | name = "gtk"
1086 | version = "0.15.5"
1087 | source = "registry+https://github.com/rust-lang/crates.io-index"
1088 | checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0"
1089 | dependencies = [
1090 | "atk",
1091 | "bitflags",
1092 | "cairo-rs",
1093 | "field-offset",
1094 | "futures-channel",
1095 | "gdk",
1096 | "gdk-pixbuf",
1097 | "gio",
1098 | "glib",
1099 | "gtk-sys",
1100 | "gtk3-macros",
1101 | "libc",
1102 | "once_cell",
1103 | "pango",
1104 | "pkg-config",
1105 | ]
1106 |
1107 | [[package]]
1108 | name = "gtk-sys"
1109 | version = "0.15.3"
1110 | source = "registry+https://github.com/rust-lang/crates.io-index"
1111 | checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84"
1112 | dependencies = [
1113 | "atk-sys",
1114 | "cairo-sys-rs",
1115 | "gdk-pixbuf-sys",
1116 | "gdk-sys",
1117 | "gio-sys",
1118 | "glib-sys",
1119 | "gobject-sys",
1120 | "libc",
1121 | "pango-sys",
1122 | "system-deps 6.1.0",
1123 | ]
1124 |
1125 | [[package]]
1126 | name = "gtk3-macros"
1127 | version = "0.15.6"
1128 | source = "registry+https://github.com/rust-lang/crates.io-index"
1129 | checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d"
1130 | dependencies = [
1131 | "anyhow",
1132 | "proc-macro-crate",
1133 | "proc-macro-error",
1134 | "proc-macro2",
1135 | "quote",
1136 | "syn 1.0.109",
1137 | ]
1138 |
1139 | [[package]]
1140 | name = "hashbrown"
1141 | version = "0.12.3"
1142 | source = "registry+https://github.com/rust-lang/crates.io-index"
1143 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
1144 |
1145 | [[package]]
1146 | name = "hashbrown"
1147 | version = "0.14.1"
1148 | source = "registry+https://github.com/rust-lang/crates.io-index"
1149 | checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
1150 |
1151 | [[package]]
1152 | name = "heck"
1153 | version = "0.3.3"
1154 | source = "registry+https://github.com/rust-lang/crates.io-index"
1155 | checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
1156 | dependencies = [
1157 | "unicode-segmentation",
1158 | ]
1159 |
1160 | [[package]]
1161 | name = "heck"
1162 | version = "0.4.1"
1163 | source = "registry+https://github.com/rust-lang/crates.io-index"
1164 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
1165 |
1166 | [[package]]
1167 | name = "hermit-abi"
1168 | version = "0.2.6"
1169 | source = "registry+https://github.com/rust-lang/crates.io-index"
1170 | checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
1171 | dependencies = [
1172 | "libc",
1173 | ]
1174 |
1175 | [[package]]
1176 | name = "hermit-abi"
1177 | version = "0.3.1"
1178 | source = "registry+https://github.com/rust-lang/crates.io-index"
1179 | checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
1180 |
1181 | [[package]]
1182 | name = "hex"
1183 | version = "0.4.3"
1184 | source = "registry+https://github.com/rust-lang/crates.io-index"
1185 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
1186 |
1187 | [[package]]
1188 | name = "hmac"
1189 | version = "0.12.1"
1190 | source = "registry+https://github.com/rust-lang/crates.io-index"
1191 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
1192 | dependencies = [
1193 | "digest",
1194 | ]
1195 |
1196 | [[package]]
1197 | name = "html5ever"
1198 | version = "0.25.2"
1199 | source = "registry+https://github.com/rust-lang/crates.io-index"
1200 | checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148"
1201 | dependencies = [
1202 | "log",
1203 | "mac",
1204 | "markup5ever 0.10.1",
1205 | "proc-macro2",
1206 | "quote",
1207 | "syn 1.0.109",
1208 | ]
1209 |
1210 | [[package]]
1211 | name = "html5ever"
1212 | version = "0.26.0"
1213 | source = "registry+https://github.com/rust-lang/crates.io-index"
1214 | checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
1215 | dependencies = [
1216 | "log",
1217 | "mac",
1218 | "markup5ever 0.11.0",
1219 | "proc-macro2",
1220 | "quote",
1221 | "syn 1.0.109",
1222 | ]
1223 |
1224 | [[package]]
1225 | name = "http"
1226 | version = "0.2.9"
1227 | source = "registry+https://github.com/rust-lang/crates.io-index"
1228 | checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
1229 | dependencies = [
1230 | "bytes",
1231 | "fnv",
1232 | "itoa 1.0.6",
1233 | ]
1234 |
1235 | [[package]]
1236 | name = "http-range"
1237 | version = "0.1.5"
1238 | source = "registry+https://github.com/rust-lang/crates.io-index"
1239 | checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
1240 |
1241 | [[package]]
1242 | name = "iana-time-zone"
1243 | version = "0.1.56"
1244 | source = "registry+https://github.com/rust-lang/crates.io-index"
1245 | checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
1246 | dependencies = [
1247 | "android_system_properties",
1248 | "core-foundation-sys",
1249 | "iana-time-zone-haiku",
1250 | "js-sys",
1251 | "wasm-bindgen",
1252 | "windows 0.48.0",
1253 | ]
1254 |
1255 | [[package]]
1256 | name = "iana-time-zone-haiku"
1257 | version = "0.1.2"
1258 | source = "registry+https://github.com/rust-lang/crates.io-index"
1259 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
1260 | dependencies = [
1261 | "cc",
1262 | ]
1263 |
1264 | [[package]]
1265 | name = "ico"
1266 | version = "0.3.0"
1267 | source = "registry+https://github.com/rust-lang/crates.io-index"
1268 | checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae"
1269 | dependencies = [
1270 | "byteorder",
1271 | "png",
1272 | ]
1273 |
1274 | [[package]]
1275 | name = "ident_case"
1276 | version = "1.0.1"
1277 | source = "registry+https://github.com/rust-lang/crates.io-index"
1278 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
1279 |
1280 | [[package]]
1281 | name = "idna"
1282 | version = "0.3.0"
1283 | source = "registry+https://github.com/rust-lang/crates.io-index"
1284 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
1285 | dependencies = [
1286 | "unicode-bidi",
1287 | "unicode-normalization",
1288 | ]
1289 |
1290 | [[package]]
1291 | name = "ignore"
1292 | version = "0.4.18"
1293 | source = "registry+https://github.com/rust-lang/crates.io-index"
1294 | checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d"
1295 | dependencies = [
1296 | "crossbeam-utils",
1297 | "globset",
1298 | "lazy_static",
1299 | "log",
1300 | "memchr",
1301 | "regex",
1302 | "same-file",
1303 | "thread_local",
1304 | "walkdir",
1305 | "winapi-util",
1306 | ]
1307 |
1308 | [[package]]
1309 | name = "image"
1310 | version = "0.24.6"
1311 | source = "registry+https://github.com/rust-lang/crates.io-index"
1312 | checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a"
1313 | dependencies = [
1314 | "bytemuck",
1315 | "byteorder",
1316 | "color_quant",
1317 | "num-rational",
1318 | "num-traits",
1319 | ]
1320 |
1321 | [[package]]
1322 | name = "indexmap"
1323 | version = "1.9.3"
1324 | source = "registry+https://github.com/rust-lang/crates.io-index"
1325 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
1326 | dependencies = [
1327 | "autocfg",
1328 | "hashbrown 0.12.3",
1329 | "serde",
1330 | ]
1331 |
1332 | [[package]]
1333 | name = "indexmap"
1334 | version = "2.0.2"
1335 | source = "registry+https://github.com/rust-lang/crates.io-index"
1336 | checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
1337 | dependencies = [
1338 | "equivalent",
1339 | "hashbrown 0.14.1",
1340 | "serde",
1341 | ]
1342 |
1343 | [[package]]
1344 | name = "infer"
1345 | version = "0.12.0"
1346 | source = "registry+https://github.com/rust-lang/crates.io-index"
1347 | checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3"
1348 | dependencies = [
1349 | "cfb",
1350 | ]
1351 |
1352 | [[package]]
1353 | name = "inout"
1354 | version = "0.1.3"
1355 | source = "registry+https://github.com/rust-lang/crates.io-index"
1356 | checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
1357 | dependencies = [
1358 | "generic-array",
1359 | ]
1360 |
1361 | [[package]]
1362 | name = "instant"
1363 | version = "0.1.12"
1364 | source = "registry+https://github.com/rust-lang/crates.io-index"
1365 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
1366 | dependencies = [
1367 | "cfg-if",
1368 | ]
1369 |
1370 | [[package]]
1371 | name = "io-lifetimes"
1372 | version = "1.0.10"
1373 | source = "registry+https://github.com/rust-lang/crates.io-index"
1374 | checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
1375 | dependencies = [
1376 | "hermit-abi 0.3.1",
1377 | "libc",
1378 | "windows-sys 0.48.0",
1379 | ]
1380 |
1381 | [[package]]
1382 | name = "itoa"
1383 | version = "0.4.8"
1384 | source = "registry+https://github.com/rust-lang/crates.io-index"
1385 | checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
1386 |
1387 | [[package]]
1388 | name = "itoa"
1389 | version = "1.0.6"
1390 | source = "registry+https://github.com/rust-lang/crates.io-index"
1391 | checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
1392 |
1393 | [[package]]
1394 | name = "javascriptcore-rs"
1395 | version = "0.16.0"
1396 | source = "registry+https://github.com/rust-lang/crates.io-index"
1397 | checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c"
1398 | dependencies = [
1399 | "bitflags",
1400 | "glib",
1401 | "javascriptcore-rs-sys",
1402 | ]
1403 |
1404 | [[package]]
1405 | name = "javascriptcore-rs-sys"
1406 | version = "0.4.0"
1407 | source = "registry+https://github.com/rust-lang/crates.io-index"
1408 | checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c"
1409 | dependencies = [
1410 | "glib-sys",
1411 | "gobject-sys",
1412 | "libc",
1413 | "system-deps 5.0.0",
1414 | ]
1415 |
1416 | [[package]]
1417 | name = "jni"
1418 | version = "0.20.0"
1419 | source = "registry+https://github.com/rust-lang/crates.io-index"
1420 | checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c"
1421 | dependencies = [
1422 | "cesu8",
1423 | "combine",
1424 | "jni-sys",
1425 | "log",
1426 | "thiserror",
1427 | "walkdir",
1428 | ]
1429 |
1430 | [[package]]
1431 | name = "jni-sys"
1432 | version = "0.3.0"
1433 | source = "registry+https://github.com/rust-lang/crates.io-index"
1434 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
1435 |
1436 | [[package]]
1437 | name = "jobserver"
1438 | version = "0.1.26"
1439 | source = "registry+https://github.com/rust-lang/crates.io-index"
1440 | checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
1441 | dependencies = [
1442 | "libc",
1443 | ]
1444 |
1445 | [[package]]
1446 | name = "js-sys"
1447 | version = "0.3.63"
1448 | source = "registry+https://github.com/rust-lang/crates.io-index"
1449 | checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790"
1450 | dependencies = [
1451 | "wasm-bindgen",
1452 | ]
1453 |
1454 | [[package]]
1455 | name = "json-patch"
1456 | version = "1.0.0"
1457 | source = "registry+https://github.com/rust-lang/crates.io-index"
1458 | checksum = "1f54898088ccb91df1b492cc80029a6fdf1c48ca0db7c6822a8babad69c94658"
1459 | dependencies = [
1460 | "serde",
1461 | "serde_json",
1462 | "thiserror",
1463 | "treediff",
1464 | ]
1465 |
1466 | [[package]]
1467 | name = "kuchiki"
1468 | version = "0.8.1"
1469 | source = "registry+https://github.com/rust-lang/crates.io-index"
1470 | checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358"
1471 | dependencies = [
1472 | "cssparser",
1473 | "html5ever 0.25.2",
1474 | "matches",
1475 | "selectors",
1476 | ]
1477 |
1478 | [[package]]
1479 | name = "kuchikiki"
1480 | version = "0.8.2"
1481 | source = "registry+https://github.com/rust-lang/crates.io-index"
1482 | checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8"
1483 | dependencies = [
1484 | "cssparser",
1485 | "html5ever 0.26.0",
1486 | "indexmap 1.9.3",
1487 | "matches",
1488 | "selectors",
1489 | ]
1490 |
1491 | [[package]]
1492 | name = "lazy_static"
1493 | version = "1.4.0"
1494 | source = "registry+https://github.com/rust-lang/crates.io-index"
1495 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
1496 |
1497 | [[package]]
1498 | name = "libc"
1499 | version = "0.2.144"
1500 | source = "registry+https://github.com/rust-lang/crates.io-index"
1501 | checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
1502 |
1503 | [[package]]
1504 | name = "line-wrap"
1505 | version = "0.1.1"
1506 | source = "registry+https://github.com/rust-lang/crates.io-index"
1507 | checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
1508 | dependencies = [
1509 | "safemem",
1510 | ]
1511 |
1512 | [[package]]
1513 | name = "linux-raw-sys"
1514 | version = "0.3.7"
1515 | source = "registry+https://github.com/rust-lang/crates.io-index"
1516 | checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f"
1517 |
1518 | [[package]]
1519 | name = "lock_api"
1520 | version = "0.4.9"
1521 | source = "registry+https://github.com/rust-lang/crates.io-index"
1522 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
1523 | dependencies = [
1524 | "autocfg",
1525 | "scopeguard",
1526 | ]
1527 |
1528 | [[package]]
1529 | name = "log"
1530 | version = "0.4.20"
1531 | source = "registry+https://github.com/rust-lang/crates.io-index"
1532 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
1533 |
1534 | [[package]]
1535 | name = "loom"
1536 | version = "0.5.6"
1537 | source = "registry+https://github.com/rust-lang/crates.io-index"
1538 | checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
1539 | dependencies = [
1540 | "cfg-if",
1541 | "generator",
1542 | "scoped-tls",
1543 | "serde",
1544 | "serde_json",
1545 | "tracing",
1546 | "tracing-subscriber",
1547 | ]
1548 |
1549 | [[package]]
1550 | name = "mac"
1551 | version = "0.1.1"
1552 | source = "registry+https://github.com/rust-lang/crates.io-index"
1553 | checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
1554 |
1555 | [[package]]
1556 | name = "malloc_buf"
1557 | version = "0.0.6"
1558 | source = "registry+https://github.com/rust-lang/crates.io-index"
1559 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
1560 | dependencies = [
1561 | "libc",
1562 | ]
1563 |
1564 | [[package]]
1565 | name = "markup5ever"
1566 | version = "0.10.1"
1567 | source = "registry+https://github.com/rust-lang/crates.io-index"
1568 | checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
1569 | dependencies = [
1570 | "log",
1571 | "phf 0.8.0",
1572 | "phf_codegen 0.8.0",
1573 | "string_cache",
1574 | "string_cache_codegen",
1575 | "tendril",
1576 | ]
1577 |
1578 | [[package]]
1579 | name = "markup5ever"
1580 | version = "0.11.0"
1581 | source = "registry+https://github.com/rust-lang/crates.io-index"
1582 | checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
1583 | dependencies = [
1584 | "log",
1585 | "phf 0.10.1",
1586 | "phf_codegen 0.10.0",
1587 | "string_cache",
1588 | "string_cache_codegen",
1589 | "tendril",
1590 | ]
1591 |
1592 | [[package]]
1593 | name = "matchers"
1594 | version = "0.1.0"
1595 | source = "registry+https://github.com/rust-lang/crates.io-index"
1596 | checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
1597 | dependencies = [
1598 | "regex-automata",
1599 | ]
1600 |
1601 | [[package]]
1602 | name = "matches"
1603 | version = "0.1.10"
1604 | source = "registry+https://github.com/rust-lang/crates.io-index"
1605 | checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
1606 |
1607 | [[package]]
1608 | name = "memchr"
1609 | version = "2.5.0"
1610 | source = "registry+https://github.com/rust-lang/crates.io-index"
1611 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
1612 |
1613 | [[package]]
1614 | name = "memoffset"
1615 | version = "0.8.0"
1616 | source = "registry+https://github.com/rust-lang/crates.io-index"
1617 | checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
1618 | dependencies = [
1619 | "autocfg",
1620 | ]
1621 |
1622 | [[package]]
1623 | name = "miniz_oxide"
1624 | version = "0.7.1"
1625 | source = "registry+https://github.com/rust-lang/crates.io-index"
1626 | checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
1627 | dependencies = [
1628 | "adler",
1629 | "simd-adler32",
1630 | ]
1631 |
1632 | [[package]]
1633 | name = "ndk"
1634 | version = "0.6.0"
1635 | source = "registry+https://github.com/rust-lang/crates.io-index"
1636 | checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4"
1637 | dependencies = [
1638 | "bitflags",
1639 | "jni-sys",
1640 | "ndk-sys",
1641 | "num_enum",
1642 | "thiserror",
1643 | ]
1644 |
1645 | [[package]]
1646 | name = "ndk-context"
1647 | version = "0.1.1"
1648 | source = "registry+https://github.com/rust-lang/crates.io-index"
1649 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
1650 |
1651 | [[package]]
1652 | name = "ndk-sys"
1653 | version = "0.3.0"
1654 | source = "registry+https://github.com/rust-lang/crates.io-index"
1655 | checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97"
1656 | dependencies = [
1657 | "jni-sys",
1658 | ]
1659 |
1660 | [[package]]
1661 | name = "new_debug_unreachable"
1662 | version = "1.0.4"
1663 | source = "registry+https://github.com/rust-lang/crates.io-index"
1664 | checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
1665 |
1666 | [[package]]
1667 | name = "nodrop"
1668 | version = "0.1.14"
1669 | source = "registry+https://github.com/rust-lang/crates.io-index"
1670 | checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
1671 |
1672 | [[package]]
1673 | name = "nu-ansi-term"
1674 | version = "0.46.0"
1675 | source = "registry+https://github.com/rust-lang/crates.io-index"
1676 | checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
1677 | dependencies = [
1678 | "overload",
1679 | "winapi",
1680 | ]
1681 |
1682 | [[package]]
1683 | name = "num-integer"
1684 | version = "0.1.45"
1685 | source = "registry+https://github.com/rust-lang/crates.io-index"
1686 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
1687 | dependencies = [
1688 | "autocfg",
1689 | "num-traits",
1690 | ]
1691 |
1692 | [[package]]
1693 | name = "num-rational"
1694 | version = "0.4.1"
1695 | source = "registry+https://github.com/rust-lang/crates.io-index"
1696 | checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
1697 | dependencies = [
1698 | "autocfg",
1699 | "num-integer",
1700 | "num-traits",
1701 | ]
1702 |
1703 | [[package]]
1704 | name = "num-traits"
1705 | version = "0.2.15"
1706 | source = "registry+https://github.com/rust-lang/crates.io-index"
1707 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
1708 | dependencies = [
1709 | "autocfg",
1710 | ]
1711 |
1712 | [[package]]
1713 | name = "num_cpus"
1714 | version = "1.15.0"
1715 | source = "registry+https://github.com/rust-lang/crates.io-index"
1716 | checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
1717 | dependencies = [
1718 | "hermit-abi 0.2.6",
1719 | "libc",
1720 | ]
1721 |
1722 | [[package]]
1723 | name = "num_enum"
1724 | version = "0.5.11"
1725 | source = "registry+https://github.com/rust-lang/crates.io-index"
1726 | checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
1727 | dependencies = [
1728 | "num_enum_derive",
1729 | ]
1730 |
1731 | [[package]]
1732 | name = "num_enum_derive"
1733 | version = "0.5.11"
1734 | source = "registry+https://github.com/rust-lang/crates.io-index"
1735 | checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
1736 | dependencies = [
1737 | "proc-macro-crate",
1738 | "proc-macro2",
1739 | "quote",
1740 | "syn 1.0.109",
1741 | ]
1742 |
1743 | [[package]]
1744 | name = "num_threads"
1745 | version = "0.1.6"
1746 | source = "registry+https://github.com/rust-lang/crates.io-index"
1747 | checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
1748 | dependencies = [
1749 | "libc",
1750 | ]
1751 |
1752 | [[package]]
1753 | name = "objc"
1754 | version = "0.2.7"
1755 | source = "registry+https://github.com/rust-lang/crates.io-index"
1756 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
1757 | dependencies = [
1758 | "malloc_buf",
1759 | "objc_exception",
1760 | ]
1761 |
1762 | [[package]]
1763 | name = "objc-foundation"
1764 | version = "0.1.1"
1765 | source = "registry+https://github.com/rust-lang/crates.io-index"
1766 | checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
1767 | dependencies = [
1768 | "block",
1769 | "objc",
1770 | "objc_id",
1771 | ]
1772 |
1773 | [[package]]
1774 | name = "objc_exception"
1775 | version = "0.1.2"
1776 | source = "registry+https://github.com/rust-lang/crates.io-index"
1777 | checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
1778 | dependencies = [
1779 | "cc",
1780 | ]
1781 |
1782 | [[package]]
1783 | name = "objc_id"
1784 | version = "0.1.1"
1785 | source = "registry+https://github.com/rust-lang/crates.io-index"
1786 | checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
1787 | dependencies = [
1788 | "objc",
1789 | ]
1790 |
1791 | [[package]]
1792 | name = "once_cell"
1793 | version = "1.17.1"
1794 | source = "registry+https://github.com/rust-lang/crates.io-index"
1795 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
1796 |
1797 | [[package]]
1798 | name = "open"
1799 | version = "3.2.0"
1800 | source = "registry+https://github.com/rust-lang/crates.io-index"
1801 | checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8"
1802 | dependencies = [
1803 | "pathdiff",
1804 | "windows-sys 0.42.0",
1805 | ]
1806 |
1807 | [[package]]
1808 | name = "overload"
1809 | version = "0.1.1"
1810 | source = "registry+https://github.com/rust-lang/crates.io-index"
1811 | checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
1812 |
1813 | [[package]]
1814 | name = "pango"
1815 | version = "0.15.10"
1816 | source = "registry+https://github.com/rust-lang/crates.io-index"
1817 | checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f"
1818 | dependencies = [
1819 | "bitflags",
1820 | "glib",
1821 | "libc",
1822 | "once_cell",
1823 | "pango-sys",
1824 | ]
1825 |
1826 | [[package]]
1827 | name = "pango-sys"
1828 | version = "0.15.10"
1829 | source = "registry+https://github.com/rust-lang/crates.io-index"
1830 | checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa"
1831 | dependencies = [
1832 | "glib-sys",
1833 | "gobject-sys",
1834 | "libc",
1835 | "system-deps 6.1.0",
1836 | ]
1837 |
1838 | [[package]]
1839 | name = "parking_lot"
1840 | version = "0.12.1"
1841 | source = "registry+https://github.com/rust-lang/crates.io-index"
1842 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
1843 | dependencies = [
1844 | "lock_api",
1845 | "parking_lot_core",
1846 | ]
1847 |
1848 | [[package]]
1849 | name = "parking_lot_core"
1850 | version = "0.9.7"
1851 | source = "registry+https://github.com/rust-lang/crates.io-index"
1852 | checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
1853 | dependencies = [
1854 | "cfg-if",
1855 | "libc",
1856 | "redox_syscall 0.2.16",
1857 | "smallvec",
1858 | "windows-sys 0.45.0",
1859 | ]
1860 |
1861 | [[package]]
1862 | name = "password-hash"
1863 | version = "0.4.2"
1864 | source = "registry+https://github.com/rust-lang/crates.io-index"
1865 | checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700"
1866 | dependencies = [
1867 | "base64ct",
1868 | "rand_core 0.6.4",
1869 | "subtle",
1870 | ]
1871 |
1872 | [[package]]
1873 | name = "pathdiff"
1874 | version = "0.2.1"
1875 | source = "registry+https://github.com/rust-lang/crates.io-index"
1876 | checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
1877 |
1878 | [[package]]
1879 | name = "pbkdf2"
1880 | version = "0.11.0"
1881 | source = "registry+https://github.com/rust-lang/crates.io-index"
1882 | checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
1883 | dependencies = [
1884 | "digest",
1885 | "hmac",
1886 | "password-hash",
1887 | "sha2",
1888 | ]
1889 |
1890 | [[package]]
1891 | name = "percent-encoding"
1892 | version = "2.2.0"
1893 | source = "registry+https://github.com/rust-lang/crates.io-index"
1894 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
1895 |
1896 | [[package]]
1897 | name = "phf"
1898 | version = "0.8.0"
1899 | source = "registry+https://github.com/rust-lang/crates.io-index"
1900 | checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
1901 | dependencies = [
1902 | "phf_macros 0.8.0",
1903 | "phf_shared 0.8.0",
1904 | "proc-macro-hack",
1905 | ]
1906 |
1907 | [[package]]
1908 | name = "phf"
1909 | version = "0.10.1"
1910 | source = "registry+https://github.com/rust-lang/crates.io-index"
1911 | checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
1912 | dependencies = [
1913 | "phf_macros 0.10.0",
1914 | "phf_shared 0.10.0",
1915 | "proc-macro-hack",
1916 | ]
1917 |
1918 | [[package]]
1919 | name = "phf_codegen"
1920 | version = "0.8.0"
1921 | source = "registry+https://github.com/rust-lang/crates.io-index"
1922 | checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
1923 | dependencies = [
1924 | "phf_generator 0.8.0",
1925 | "phf_shared 0.8.0",
1926 | ]
1927 |
1928 | [[package]]
1929 | name = "phf_codegen"
1930 | version = "0.10.0"
1931 | source = "registry+https://github.com/rust-lang/crates.io-index"
1932 | checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
1933 | dependencies = [
1934 | "phf_generator 0.10.0",
1935 | "phf_shared 0.10.0",
1936 | ]
1937 |
1938 | [[package]]
1939 | name = "phf_generator"
1940 | version = "0.8.0"
1941 | source = "registry+https://github.com/rust-lang/crates.io-index"
1942 | checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
1943 | dependencies = [
1944 | "phf_shared 0.8.0",
1945 | "rand 0.7.3",
1946 | ]
1947 |
1948 | [[package]]
1949 | name = "phf_generator"
1950 | version = "0.10.0"
1951 | source = "registry+https://github.com/rust-lang/crates.io-index"
1952 | checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
1953 | dependencies = [
1954 | "phf_shared 0.10.0",
1955 | "rand 0.8.5",
1956 | ]
1957 |
1958 | [[package]]
1959 | name = "phf_macros"
1960 | version = "0.8.0"
1961 | source = "registry+https://github.com/rust-lang/crates.io-index"
1962 | checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
1963 | dependencies = [
1964 | "phf_generator 0.8.0",
1965 | "phf_shared 0.8.0",
1966 | "proc-macro-hack",
1967 | "proc-macro2",
1968 | "quote",
1969 | "syn 1.0.109",
1970 | ]
1971 |
1972 | [[package]]
1973 | name = "phf_macros"
1974 | version = "0.10.0"
1975 | source = "registry+https://github.com/rust-lang/crates.io-index"
1976 | checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
1977 | dependencies = [
1978 | "phf_generator 0.10.0",
1979 | "phf_shared 0.10.0",
1980 | "proc-macro-hack",
1981 | "proc-macro2",
1982 | "quote",
1983 | "syn 1.0.109",
1984 | ]
1985 |
1986 | [[package]]
1987 | name = "phf_shared"
1988 | version = "0.8.0"
1989 | source = "registry+https://github.com/rust-lang/crates.io-index"
1990 | checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
1991 | dependencies = [
1992 | "siphasher",
1993 | ]
1994 |
1995 | [[package]]
1996 | name = "phf_shared"
1997 | version = "0.10.0"
1998 | source = "registry+https://github.com/rust-lang/crates.io-index"
1999 | checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
2000 | dependencies = [
2001 | "siphasher",
2002 | ]
2003 |
2004 | [[package]]
2005 | name = "pin-project-lite"
2006 | version = "0.2.9"
2007 | source = "registry+https://github.com/rust-lang/crates.io-index"
2008 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
2009 |
2010 | [[package]]
2011 | name = "pin-utils"
2012 | version = "0.1.0"
2013 | source = "registry+https://github.com/rust-lang/crates.io-index"
2014 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
2015 |
2016 | [[package]]
2017 | name = "pkg-config"
2018 | version = "0.3.27"
2019 | source = "registry+https://github.com/rust-lang/crates.io-index"
2020 | checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
2021 |
2022 | [[package]]
2023 | name = "plist"
2024 | version = "1.4.3"
2025 | source = "registry+https://github.com/rust-lang/crates.io-index"
2026 | checksum = "9bd9647b268a3d3e14ff09c23201133a62589c658db02bb7388c7246aafe0590"
2027 | dependencies = [
2028 | "base64 0.21.0",
2029 | "indexmap 1.9.3",
2030 | "line-wrap",
2031 | "quick-xml",
2032 | "serde",
2033 | "time",
2034 | ]
2035 |
2036 | [[package]]
2037 | name = "png"
2038 | version = "0.17.8"
2039 | source = "registry+https://github.com/rust-lang/crates.io-index"
2040 | checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa"
2041 | dependencies = [
2042 | "bitflags",
2043 | "crc32fast",
2044 | "fdeflate",
2045 | "flate2",
2046 | "miniz_oxide",
2047 | ]
2048 |
2049 | [[package]]
2050 | name = "ppv-lite86"
2051 | version = "0.2.17"
2052 | source = "registry+https://github.com/rust-lang/crates.io-index"
2053 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
2054 |
2055 | [[package]]
2056 | name = "precomputed-hash"
2057 | version = "0.1.1"
2058 | source = "registry+https://github.com/rust-lang/crates.io-index"
2059 | checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
2060 |
2061 | [[package]]
2062 | name = "proc-macro-crate"
2063 | version = "1.3.1"
2064 | source = "registry+https://github.com/rust-lang/crates.io-index"
2065 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
2066 | dependencies = [
2067 | "once_cell",
2068 | "toml_edit",
2069 | ]
2070 |
2071 | [[package]]
2072 | name = "proc-macro-error"
2073 | version = "1.0.4"
2074 | source = "registry+https://github.com/rust-lang/crates.io-index"
2075 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
2076 | dependencies = [
2077 | "proc-macro-error-attr",
2078 | "proc-macro2",
2079 | "quote",
2080 | "syn 1.0.109",
2081 | "version_check",
2082 | ]
2083 |
2084 | [[package]]
2085 | name = "proc-macro-error-attr"
2086 | version = "1.0.4"
2087 | source = "registry+https://github.com/rust-lang/crates.io-index"
2088 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
2089 | dependencies = [
2090 | "proc-macro2",
2091 | "quote",
2092 | "version_check",
2093 | ]
2094 |
2095 | [[package]]
2096 | name = "proc-macro-hack"
2097 | version = "0.5.20+deprecated"
2098 | source = "registry+https://github.com/rust-lang/crates.io-index"
2099 | checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
2100 |
2101 | [[package]]
2102 | name = "proc-macro2"
2103 | version = "1.0.58"
2104 | source = "registry+https://github.com/rust-lang/crates.io-index"
2105 | checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8"
2106 | dependencies = [
2107 | "unicode-ident",
2108 | ]
2109 |
2110 | [[package]]
2111 | name = "quick-xml"
2112 | version = "0.28.2"
2113 | source = "registry+https://github.com/rust-lang/crates.io-index"
2114 | checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
2115 | dependencies = [
2116 | "memchr",
2117 | ]
2118 |
2119 | [[package]]
2120 | name = "quote"
2121 | version = "1.0.27"
2122 | source = "registry+https://github.com/rust-lang/crates.io-index"
2123 | checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
2124 | dependencies = [
2125 | "proc-macro2",
2126 | ]
2127 |
2128 | [[package]]
2129 | name = "rand"
2130 | version = "0.7.3"
2131 | source = "registry+https://github.com/rust-lang/crates.io-index"
2132 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
2133 | dependencies = [
2134 | "getrandom 0.1.16",
2135 | "libc",
2136 | "rand_chacha 0.2.2",
2137 | "rand_core 0.5.1",
2138 | "rand_hc",
2139 | "rand_pcg",
2140 | ]
2141 |
2142 | [[package]]
2143 | name = "rand"
2144 | version = "0.8.5"
2145 | source = "registry+https://github.com/rust-lang/crates.io-index"
2146 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
2147 | dependencies = [
2148 | "libc",
2149 | "rand_chacha 0.3.1",
2150 | "rand_core 0.6.4",
2151 | ]
2152 |
2153 | [[package]]
2154 | name = "rand_chacha"
2155 | version = "0.2.2"
2156 | source = "registry+https://github.com/rust-lang/crates.io-index"
2157 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
2158 | dependencies = [
2159 | "ppv-lite86",
2160 | "rand_core 0.5.1",
2161 | ]
2162 |
2163 | [[package]]
2164 | name = "rand_chacha"
2165 | version = "0.3.1"
2166 | source = "registry+https://github.com/rust-lang/crates.io-index"
2167 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
2168 | dependencies = [
2169 | "ppv-lite86",
2170 | "rand_core 0.6.4",
2171 | ]
2172 |
2173 | [[package]]
2174 | name = "rand_core"
2175 | version = "0.5.1"
2176 | source = "registry+https://github.com/rust-lang/crates.io-index"
2177 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
2178 | dependencies = [
2179 | "getrandom 0.1.16",
2180 | ]
2181 |
2182 | [[package]]
2183 | name = "rand_core"
2184 | version = "0.6.4"
2185 | source = "registry+https://github.com/rust-lang/crates.io-index"
2186 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2187 | dependencies = [
2188 | "getrandom 0.2.9",
2189 | ]
2190 |
2191 | [[package]]
2192 | name = "rand_hc"
2193 | version = "0.2.0"
2194 | source = "registry+https://github.com/rust-lang/crates.io-index"
2195 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
2196 | dependencies = [
2197 | "rand_core 0.5.1",
2198 | ]
2199 |
2200 | [[package]]
2201 | name = "rand_pcg"
2202 | version = "0.2.1"
2203 | source = "registry+https://github.com/rust-lang/crates.io-index"
2204 | checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
2205 | dependencies = [
2206 | "rand_core 0.5.1",
2207 | ]
2208 |
2209 | [[package]]
2210 | name = "raw-window-handle"
2211 | version = "0.5.0"
2212 | source = "registry+https://github.com/rust-lang/crates.io-index"
2213 | checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a"
2214 | dependencies = [
2215 | "cty",
2216 | ]
2217 |
2218 | [[package]]
2219 | name = "redox_syscall"
2220 | version = "0.2.16"
2221 | source = "registry+https://github.com/rust-lang/crates.io-index"
2222 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
2223 | dependencies = [
2224 | "bitflags",
2225 | ]
2226 |
2227 | [[package]]
2228 | name = "redox_syscall"
2229 | version = "0.3.5"
2230 | source = "registry+https://github.com/rust-lang/crates.io-index"
2231 | checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
2232 | dependencies = [
2233 | "bitflags",
2234 | ]
2235 |
2236 | [[package]]
2237 | name = "redox_users"
2238 | version = "0.4.3"
2239 | source = "registry+https://github.com/rust-lang/crates.io-index"
2240 | checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
2241 | dependencies = [
2242 | "getrandom 0.2.9",
2243 | "redox_syscall 0.2.16",
2244 | "thiserror",
2245 | ]
2246 |
2247 | [[package]]
2248 | name = "regex"
2249 | version = "1.8.1"
2250 | source = "registry+https://github.com/rust-lang/crates.io-index"
2251 | checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
2252 | dependencies = [
2253 | "aho-corasick 1.0.1",
2254 | "memchr",
2255 | "regex-syntax 0.7.1",
2256 | ]
2257 |
2258 | [[package]]
2259 | name = "regex-automata"
2260 | version = "0.1.10"
2261 | source = "registry+https://github.com/rust-lang/crates.io-index"
2262 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
2263 | dependencies = [
2264 | "regex-syntax 0.6.29",
2265 | ]
2266 |
2267 | [[package]]
2268 | name = "regex-syntax"
2269 | version = "0.6.29"
2270 | source = "registry+https://github.com/rust-lang/crates.io-index"
2271 | checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
2272 |
2273 | [[package]]
2274 | name = "regex-syntax"
2275 | version = "0.7.1"
2276 | source = "registry+https://github.com/rust-lang/crates.io-index"
2277 | checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
2278 |
2279 | [[package]]
2280 | name = "rfd"
2281 | version = "0.10.0"
2282 | source = "registry+https://github.com/rust-lang/crates.io-index"
2283 | checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea"
2284 | dependencies = [
2285 | "block",
2286 | "dispatch",
2287 | "glib-sys",
2288 | "gobject-sys",
2289 | "gtk-sys",
2290 | "js-sys",
2291 | "lazy_static",
2292 | "log",
2293 | "objc",
2294 | "objc-foundation",
2295 | "objc_id",
2296 | "raw-window-handle",
2297 | "wasm-bindgen",
2298 | "wasm-bindgen-futures",
2299 | "web-sys",
2300 | "windows 0.37.0",
2301 | ]
2302 |
2303 | [[package]]
2304 | name = "rustc_version"
2305 | version = "0.4.0"
2306 | source = "registry+https://github.com/rust-lang/crates.io-index"
2307 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
2308 | dependencies = [
2309 | "semver",
2310 | ]
2311 |
2312 | [[package]]
2313 | name = "rustix"
2314 | version = "0.37.19"
2315 | source = "registry+https://github.com/rust-lang/crates.io-index"
2316 | checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
2317 | dependencies = [
2318 | "bitflags",
2319 | "errno",
2320 | "io-lifetimes",
2321 | "libc",
2322 | "linux-raw-sys",
2323 | "windows-sys 0.48.0",
2324 | ]
2325 |
2326 | [[package]]
2327 | name = "rustversion"
2328 | version = "1.0.12"
2329 | source = "registry+https://github.com/rust-lang/crates.io-index"
2330 | checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
2331 |
2332 | [[package]]
2333 | name = "ryu"
2334 | version = "1.0.13"
2335 | source = "registry+https://github.com/rust-lang/crates.io-index"
2336 | checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
2337 |
2338 | [[package]]
2339 | name = "safemem"
2340 | version = "0.3.3"
2341 | source = "registry+https://github.com/rust-lang/crates.io-index"
2342 | checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
2343 |
2344 | [[package]]
2345 | name = "same-file"
2346 | version = "1.0.6"
2347 | source = "registry+https://github.com/rust-lang/crates.io-index"
2348 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
2349 | dependencies = [
2350 | "winapi-util",
2351 | ]
2352 |
2353 | [[package]]
2354 | name = "scoped-tls"
2355 | version = "1.0.1"
2356 | source = "registry+https://github.com/rust-lang/crates.io-index"
2357 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
2358 |
2359 | [[package]]
2360 | name = "scopeguard"
2361 | version = "1.1.0"
2362 | source = "registry+https://github.com/rust-lang/crates.io-index"
2363 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
2364 |
2365 | [[package]]
2366 | name = "selectors"
2367 | version = "0.22.0"
2368 | source = "registry+https://github.com/rust-lang/crates.io-index"
2369 | checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
2370 | dependencies = [
2371 | "bitflags",
2372 | "cssparser",
2373 | "derive_more",
2374 | "fxhash",
2375 | "log",
2376 | "matches",
2377 | "phf 0.8.0",
2378 | "phf_codegen 0.8.0",
2379 | "precomputed-hash",
2380 | "servo_arc",
2381 | "smallvec",
2382 | "thin-slice",
2383 | ]
2384 |
2385 | [[package]]
2386 | name = "semver"
2387 | version = "1.0.17"
2388 | source = "registry+https://github.com/rust-lang/crates.io-index"
2389 | checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
2390 | dependencies = [
2391 | "serde",
2392 | ]
2393 |
2394 | [[package]]
2395 | name = "serde"
2396 | version = "1.0.163"
2397 | source = "registry+https://github.com/rust-lang/crates.io-index"
2398 | checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
2399 | dependencies = [
2400 | "serde_derive",
2401 | ]
2402 |
2403 | [[package]]
2404 | name = "serde_derive"
2405 | version = "1.0.163"
2406 | source = "registry+https://github.com/rust-lang/crates.io-index"
2407 | checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
2408 | dependencies = [
2409 | "proc-macro2",
2410 | "quote",
2411 | "syn 2.0.16",
2412 | ]
2413 |
2414 | [[package]]
2415 | name = "serde_json"
2416 | version = "1.0.96"
2417 | source = "registry+https://github.com/rust-lang/crates.io-index"
2418 | checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
2419 | dependencies = [
2420 | "itoa 1.0.6",
2421 | "ryu",
2422 | "serde",
2423 | ]
2424 |
2425 | [[package]]
2426 | name = "serde_repr"
2427 | version = "0.1.12"
2428 | source = "registry+https://github.com/rust-lang/crates.io-index"
2429 | checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
2430 | dependencies = [
2431 | "proc-macro2",
2432 | "quote",
2433 | "syn 2.0.16",
2434 | ]
2435 |
2436 | [[package]]
2437 | name = "serde_spanned"
2438 | version = "0.6.2"
2439 | source = "registry+https://github.com/rust-lang/crates.io-index"
2440 | checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d"
2441 | dependencies = [
2442 | "serde",
2443 | ]
2444 |
2445 | [[package]]
2446 | name = "serde_with"
2447 | version = "3.3.0"
2448 | source = "registry+https://github.com/rust-lang/crates.io-index"
2449 | checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237"
2450 | dependencies = [
2451 | "base64 0.21.0",
2452 | "chrono",
2453 | "hex",
2454 | "indexmap 1.9.3",
2455 | "indexmap 2.0.2",
2456 | "serde",
2457 | "serde_json",
2458 | "serde_with_macros",
2459 | "time",
2460 | ]
2461 |
2462 | [[package]]
2463 | name = "serde_with_macros"
2464 | version = "3.3.0"
2465 | source = "registry+https://github.com/rust-lang/crates.io-index"
2466 | checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c"
2467 | dependencies = [
2468 | "darling",
2469 | "proc-macro2",
2470 | "quote",
2471 | "syn 2.0.16",
2472 | ]
2473 |
2474 | [[package]]
2475 | name = "serialize-to-javascript"
2476 | version = "0.1.1"
2477 | source = "registry+https://github.com/rust-lang/crates.io-index"
2478 | checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb"
2479 | dependencies = [
2480 | "serde",
2481 | "serde_json",
2482 | "serialize-to-javascript-impl",
2483 | ]
2484 |
2485 | [[package]]
2486 | name = "serialize-to-javascript-impl"
2487 | version = "0.1.1"
2488 | source = "registry+https://github.com/rust-lang/crates.io-index"
2489 | checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763"
2490 | dependencies = [
2491 | "proc-macro2",
2492 | "quote",
2493 | "syn 1.0.109",
2494 | ]
2495 |
2496 | [[package]]
2497 | name = "servo_arc"
2498 | version = "0.1.1"
2499 | source = "registry+https://github.com/rust-lang/crates.io-index"
2500 | checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
2501 | dependencies = [
2502 | "nodrop",
2503 | "stable_deref_trait",
2504 | ]
2505 |
2506 | [[package]]
2507 | name = "sha1"
2508 | version = "0.10.5"
2509 | source = "registry+https://github.com/rust-lang/crates.io-index"
2510 | checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
2511 | dependencies = [
2512 | "cfg-if",
2513 | "cpufeatures",
2514 | "digest",
2515 | ]
2516 |
2517 | [[package]]
2518 | name = "sha2"
2519 | version = "0.10.6"
2520 | source = "registry+https://github.com/rust-lang/crates.io-index"
2521 | checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
2522 | dependencies = [
2523 | "cfg-if",
2524 | "cpufeatures",
2525 | "digest",
2526 | ]
2527 |
2528 | [[package]]
2529 | name = "sharded-slab"
2530 | version = "0.1.4"
2531 | source = "registry+https://github.com/rust-lang/crates.io-index"
2532 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
2533 | dependencies = [
2534 | "lazy_static",
2535 | ]
2536 |
2537 | [[package]]
2538 | name = "simd-adler32"
2539 | version = "0.3.5"
2540 | source = "registry+https://github.com/rust-lang/crates.io-index"
2541 | checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
2542 |
2543 | [[package]]
2544 | name = "siphasher"
2545 | version = "0.3.10"
2546 | source = "registry+https://github.com/rust-lang/crates.io-index"
2547 | checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
2548 |
2549 | [[package]]
2550 | name = "slab"
2551 | version = "0.4.8"
2552 | source = "registry+https://github.com/rust-lang/crates.io-index"
2553 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
2554 | dependencies = [
2555 | "autocfg",
2556 | ]
2557 |
2558 | [[package]]
2559 | name = "smallvec"
2560 | version = "1.10.0"
2561 | source = "registry+https://github.com/rust-lang/crates.io-index"
2562 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
2563 |
2564 | [[package]]
2565 | name = "soup2"
2566 | version = "0.2.1"
2567 | source = "registry+https://github.com/rust-lang/crates.io-index"
2568 | checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0"
2569 | dependencies = [
2570 | "bitflags",
2571 | "gio",
2572 | "glib",
2573 | "libc",
2574 | "once_cell",
2575 | "soup2-sys",
2576 | ]
2577 |
2578 | [[package]]
2579 | name = "soup2-sys"
2580 | version = "0.2.0"
2581 | source = "registry+https://github.com/rust-lang/crates.io-index"
2582 | checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf"
2583 | dependencies = [
2584 | "bitflags",
2585 | "gio-sys",
2586 | "glib-sys",
2587 | "gobject-sys",
2588 | "libc",
2589 | "system-deps 5.0.0",
2590 | ]
2591 |
2592 | [[package]]
2593 | name = "stable_deref_trait"
2594 | version = "1.2.0"
2595 | source = "registry+https://github.com/rust-lang/crates.io-index"
2596 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
2597 |
2598 | [[package]]
2599 | name = "state"
2600 | version = "0.5.3"
2601 | source = "registry+https://github.com/rust-lang/crates.io-index"
2602 | checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b"
2603 | dependencies = [
2604 | "loom",
2605 | ]
2606 |
2607 | [[package]]
2608 | name = "string_cache"
2609 | version = "0.8.7"
2610 | source = "registry+https://github.com/rust-lang/crates.io-index"
2611 | checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
2612 | dependencies = [
2613 | "new_debug_unreachable",
2614 | "once_cell",
2615 | "parking_lot",
2616 | "phf_shared 0.10.0",
2617 | "precomputed-hash",
2618 | "serde",
2619 | ]
2620 |
2621 | [[package]]
2622 | name = "string_cache_codegen"
2623 | version = "0.5.2"
2624 | source = "registry+https://github.com/rust-lang/crates.io-index"
2625 | checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
2626 | dependencies = [
2627 | "phf_generator 0.10.0",
2628 | "phf_shared 0.10.0",
2629 | "proc-macro2",
2630 | "quote",
2631 | ]
2632 |
2633 | [[package]]
2634 | name = "strsim"
2635 | version = "0.10.0"
2636 | source = "registry+https://github.com/rust-lang/crates.io-index"
2637 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
2638 |
2639 | [[package]]
2640 | name = "subtle"
2641 | version = "2.4.1"
2642 | source = "registry+https://github.com/rust-lang/crates.io-index"
2643 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
2644 |
2645 | [[package]]
2646 | name = "syn"
2647 | version = "1.0.109"
2648 | source = "registry+https://github.com/rust-lang/crates.io-index"
2649 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
2650 | dependencies = [
2651 | "proc-macro2",
2652 | "quote",
2653 | "unicode-ident",
2654 | ]
2655 |
2656 | [[package]]
2657 | name = "syn"
2658 | version = "2.0.16"
2659 | source = "registry+https://github.com/rust-lang/crates.io-index"
2660 | checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01"
2661 | dependencies = [
2662 | "proc-macro2",
2663 | "quote",
2664 | "unicode-ident",
2665 | ]
2666 |
2667 | [[package]]
2668 | name = "system-deps"
2669 | version = "5.0.0"
2670 | source = "registry+https://github.com/rust-lang/crates.io-index"
2671 | checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e"
2672 | dependencies = [
2673 | "cfg-expr 0.9.1",
2674 | "heck 0.3.3",
2675 | "pkg-config",
2676 | "toml 0.5.11",
2677 | "version-compare 0.0.11",
2678 | ]
2679 |
2680 | [[package]]
2681 | name = "system-deps"
2682 | version = "6.1.0"
2683 | source = "registry+https://github.com/rust-lang/crates.io-index"
2684 | checksum = "e5fa6fb9ee296c0dc2df41a656ca7948546d061958115ddb0bcaae43ad0d17d2"
2685 | dependencies = [
2686 | "cfg-expr 0.15.1",
2687 | "heck 0.4.1",
2688 | "pkg-config",
2689 | "toml 0.7.3",
2690 | "version-compare 0.1.1",
2691 | ]
2692 |
2693 | [[package]]
2694 | name = "tao"
2695 | version = "0.16.1"
2696 | source = "registry+https://github.com/rust-lang/crates.io-index"
2697 | checksum = "dd3cde9c0cd2b872616bba26b818e0d6469330196869d7e5000dba96ce9431df"
2698 | dependencies = [
2699 | "bitflags",
2700 | "cairo-rs",
2701 | "cc",
2702 | "cocoa",
2703 | "core-foundation",
2704 | "core-graphics",
2705 | "crossbeam-channel",
2706 | "dispatch",
2707 | "gdk",
2708 | "gdk-pixbuf",
2709 | "gdk-sys",
2710 | "gdkwayland-sys",
2711 | "gdkx11-sys",
2712 | "gio",
2713 | "glib",
2714 | "glib-sys",
2715 | "gtk",
2716 | "image",
2717 | "instant",
2718 | "jni",
2719 | "lazy_static",
2720 | "libc",
2721 | "log",
2722 | "ndk",
2723 | "ndk-context",
2724 | "ndk-sys",
2725 | "objc",
2726 | "once_cell",
2727 | "parking_lot",
2728 | "png",
2729 | "raw-window-handle",
2730 | "scopeguard",
2731 | "serde",
2732 | "tao-macros",
2733 | "unicode-segmentation",
2734 | "uuid",
2735 | "windows 0.39.0",
2736 | "windows-implement",
2737 | "x11-dl",
2738 | ]
2739 |
2740 | [[package]]
2741 | name = "tao-macros"
2742 | version = "0.1.1"
2743 | source = "registry+https://github.com/rust-lang/crates.io-index"
2744 | checksum = "3b27a4bcc5eb524658234589bdffc7e7bfb996dbae6ce9393bfd39cb4159b445"
2745 | dependencies = [
2746 | "proc-macro2",
2747 | "quote",
2748 | "syn 1.0.109",
2749 | ]
2750 |
2751 | [[package]]
2752 | name = "tar"
2753 | version = "0.4.38"
2754 | source = "registry+https://github.com/rust-lang/crates.io-index"
2755 | checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6"
2756 | dependencies = [
2757 | "filetime",
2758 | "libc",
2759 | "xattr",
2760 | ]
2761 |
2762 | [[package]]
2763 | name = "target-lexicon"
2764 | version = "0.12.7"
2765 | source = "registry+https://github.com/rust-lang/crates.io-index"
2766 | checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5"
2767 |
2768 | [[package]]
2769 | name = "tauri"
2770 | version = "1.5.0"
2771 | source = "registry+https://github.com/rust-lang/crates.io-index"
2772 | checksum = "72aee3277d0a0df01472cc704ab5934a51a1f25348838df17bfb3c5cb727880c"
2773 | dependencies = [
2774 | "anyhow",
2775 | "cocoa",
2776 | "dirs-next",
2777 | "embed_plist",
2778 | "encoding_rs",
2779 | "flate2",
2780 | "futures-util",
2781 | "glib",
2782 | "glob",
2783 | "gtk",
2784 | "heck 0.4.1",
2785 | "http",
2786 | "ignore",
2787 | "objc",
2788 | "once_cell",
2789 | "open",
2790 | "percent-encoding",
2791 | "rand 0.8.5",
2792 | "raw-window-handle",
2793 | "regex",
2794 | "rfd",
2795 | "semver",
2796 | "serde",
2797 | "serde_json",
2798 | "serde_repr",
2799 | "serialize-to-javascript",
2800 | "state",
2801 | "tar",
2802 | "tauri-macros",
2803 | "tauri-runtime",
2804 | "tauri-runtime-wry",
2805 | "tauri-utils",
2806 | "tempfile",
2807 | "thiserror",
2808 | "tokio",
2809 | "url",
2810 | "uuid",
2811 | "webkit2gtk",
2812 | "webview2-com",
2813 | "windows 0.39.0",
2814 | ]
2815 |
2816 | [[package]]
2817 | name = "tauri-build"
2818 | version = "1.5.0"
2819 | source = "registry+https://github.com/rust-lang/crates.io-index"
2820 | checksum = "defbfc551bd38ab997e5f8e458f87396d2559d05ce32095076ad6c30f7fc5f9c"
2821 | dependencies = [
2822 | "anyhow",
2823 | "cargo_toml",
2824 | "dirs-next",
2825 | "heck 0.4.1",
2826 | "json-patch",
2827 | "semver",
2828 | "serde",
2829 | "serde_json",
2830 | "tauri-utils",
2831 | "tauri-winres",
2832 | "walkdir",
2833 | ]
2834 |
2835 | [[package]]
2836 | name = "tauri-codegen"
2837 | version = "1.4.1"
2838 | source = "registry+https://github.com/rust-lang/crates.io-index"
2839 | checksum = "7b3475e55acec0b4a50fb96435f19631fb58cbcd31923e1a213de5c382536bbb"
2840 | dependencies = [
2841 | "base64 0.21.0",
2842 | "brotli",
2843 | "ico",
2844 | "json-patch",
2845 | "plist",
2846 | "png",
2847 | "proc-macro2",
2848 | "quote",
2849 | "regex",
2850 | "semver",
2851 | "serde",
2852 | "serde_json",
2853 | "sha2",
2854 | "tauri-utils",
2855 | "thiserror",
2856 | "time",
2857 | "uuid",
2858 | "walkdir",
2859 | ]
2860 |
2861 | [[package]]
2862 | name = "tauri-macros"
2863 | version = "1.4.1"
2864 | source = "registry+https://github.com/rust-lang/crates.io-index"
2865 | checksum = "613740228de92d9196b795ac455091d3a5fbdac2654abb8bb07d010b62ab43af"
2866 | dependencies = [
2867 | "heck 0.4.1",
2868 | "proc-macro2",
2869 | "quote",
2870 | "syn 1.0.109",
2871 | "tauri-codegen",
2872 | "tauri-utils",
2873 | ]
2874 |
2875 | [[package]]
2876 | name = "tauri-runtime"
2877 | version = "0.14.1"
2878 | source = "registry+https://github.com/rust-lang/crates.io-index"
2879 | checksum = "07f8e9e53e00e9f41212c115749e87d5cd2a9eebccafca77a19722eeecd56d43"
2880 | dependencies = [
2881 | "gtk",
2882 | "http",
2883 | "http-range",
2884 | "rand 0.8.5",
2885 | "raw-window-handle",
2886 | "serde",
2887 | "serde_json",
2888 | "tauri-utils",
2889 | "thiserror",
2890 | "url",
2891 | "uuid",
2892 | "webview2-com",
2893 | "windows 0.39.0",
2894 | ]
2895 |
2896 | [[package]]
2897 | name = "tauri-runtime-wry"
2898 | version = "0.14.1"
2899 | source = "registry+https://github.com/rust-lang/crates.io-index"
2900 | checksum = "8141d72b6b65f2008911e9ef5b98a68d1e3413b7a1464e8f85eb3673bb19a895"
2901 | dependencies = [
2902 | "cocoa",
2903 | "gtk",
2904 | "percent-encoding",
2905 | "rand 0.8.5",
2906 | "raw-window-handle",
2907 | "tauri-runtime",
2908 | "tauri-utils",
2909 | "uuid",
2910 | "webkit2gtk",
2911 | "webview2-com",
2912 | "windows 0.39.0",
2913 | "wry",
2914 | ]
2915 |
2916 | [[package]]
2917 | name = "tauri-utils"
2918 | version = "1.5.0"
2919 | source = "registry+https://github.com/rust-lang/crates.io-index"
2920 | checksum = "34d55e185904a84a419308d523c2c6891d5e2dbcee740c4997eb42e75a7b0f46"
2921 | dependencies = [
2922 | "brotli",
2923 | "ctor",
2924 | "dunce",
2925 | "glob",
2926 | "heck 0.4.1",
2927 | "html5ever 0.26.0",
2928 | "infer",
2929 | "json-patch",
2930 | "kuchikiki",
2931 | "log",
2932 | "memchr",
2933 | "phf 0.10.1",
2934 | "proc-macro2",
2935 | "quote",
2936 | "semver",
2937 | "serde",
2938 | "serde_json",
2939 | "serde_with",
2940 | "thiserror",
2941 | "url",
2942 | "walkdir",
2943 | "windows 0.39.0",
2944 | ]
2945 |
2946 | [[package]]
2947 | name = "tauri-winres"
2948 | version = "0.1.1"
2949 | source = "registry+https://github.com/rust-lang/crates.io-index"
2950 | checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb"
2951 | dependencies = [
2952 | "embed-resource",
2953 | "toml 0.7.3",
2954 | ]
2955 |
2956 | [[package]]
2957 | name = "tempfile"
2958 | version = "3.5.0"
2959 | source = "registry+https://github.com/rust-lang/crates.io-index"
2960 | checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
2961 | dependencies = [
2962 | "cfg-if",
2963 | "fastrand",
2964 | "redox_syscall 0.3.5",
2965 | "rustix",
2966 | "windows-sys 0.45.0",
2967 | ]
2968 |
2969 | [[package]]
2970 | name = "tendril"
2971 | version = "0.4.3"
2972 | source = "registry+https://github.com/rust-lang/crates.io-index"
2973 | checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
2974 | dependencies = [
2975 | "futf",
2976 | "mac",
2977 | "utf-8",
2978 | ]
2979 |
2980 | [[package]]
2981 | name = "thin-slice"
2982 | version = "0.1.1"
2983 | source = "registry+https://github.com/rust-lang/crates.io-index"
2984 | checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
2985 |
2986 | [[package]]
2987 | name = "thiserror"
2988 | version = "1.0.40"
2989 | source = "registry+https://github.com/rust-lang/crates.io-index"
2990 | checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
2991 | dependencies = [
2992 | "thiserror-impl",
2993 | ]
2994 |
2995 | [[package]]
2996 | name = "thiserror-impl"
2997 | version = "1.0.40"
2998 | source = "registry+https://github.com/rust-lang/crates.io-index"
2999 | checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
3000 | dependencies = [
3001 | "proc-macro2",
3002 | "quote",
3003 | "syn 2.0.16",
3004 | ]
3005 |
3006 | [[package]]
3007 | name = "thread_local"
3008 | version = "1.1.7"
3009 | source = "registry+https://github.com/rust-lang/crates.io-index"
3010 | checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
3011 | dependencies = [
3012 | "cfg-if",
3013 | "once_cell",
3014 | ]
3015 |
3016 | [[package]]
3017 | name = "time"
3018 | version = "0.3.15"
3019 | source = "registry+https://github.com/rust-lang/crates.io-index"
3020 | checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c"
3021 | dependencies = [
3022 | "itoa 1.0.6",
3023 | "libc",
3024 | "num_threads",
3025 | "serde",
3026 | ]
3027 |
3028 | [[package]]
3029 | name = "tinyvec"
3030 | version = "1.6.0"
3031 | source = "registry+https://github.com/rust-lang/crates.io-index"
3032 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
3033 | dependencies = [
3034 | "tinyvec_macros",
3035 | ]
3036 |
3037 | [[package]]
3038 | name = "tinyvec_macros"
3039 | version = "0.1.1"
3040 | source = "registry+https://github.com/rust-lang/crates.io-index"
3041 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
3042 |
3043 | [[package]]
3044 | name = "tokio"
3045 | version = "1.28.1"
3046 | source = "registry+https://github.com/rust-lang/crates.io-index"
3047 | checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105"
3048 | dependencies = [
3049 | "autocfg",
3050 | "bytes",
3051 | "num_cpus",
3052 | "pin-project-lite",
3053 | "windows-sys 0.48.0",
3054 | ]
3055 |
3056 | [[package]]
3057 | name = "toml"
3058 | version = "0.5.11"
3059 | source = "registry+https://github.com/rust-lang/crates.io-index"
3060 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
3061 | dependencies = [
3062 | "serde",
3063 | ]
3064 |
3065 | [[package]]
3066 | name = "toml"
3067 | version = "0.7.3"
3068 | source = "registry+https://github.com/rust-lang/crates.io-index"
3069 | checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21"
3070 | dependencies = [
3071 | "serde",
3072 | "serde_spanned",
3073 | "toml_datetime",
3074 | "toml_edit",
3075 | ]
3076 |
3077 | [[package]]
3078 | name = "toml_datetime"
3079 | version = "0.6.2"
3080 | source = "registry+https://github.com/rust-lang/crates.io-index"
3081 | checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f"
3082 | dependencies = [
3083 | "serde",
3084 | ]
3085 |
3086 | [[package]]
3087 | name = "toml_edit"
3088 | version = "0.19.8"
3089 | source = "registry+https://github.com/rust-lang/crates.io-index"
3090 | checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13"
3091 | dependencies = [
3092 | "indexmap 1.9.3",
3093 | "serde",
3094 | "serde_spanned",
3095 | "toml_datetime",
3096 | "winnow",
3097 | ]
3098 |
3099 | [[package]]
3100 | name = "tracing"
3101 | version = "0.1.37"
3102 | source = "registry+https://github.com/rust-lang/crates.io-index"
3103 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
3104 | dependencies = [
3105 | "cfg-if",
3106 | "pin-project-lite",
3107 | "tracing-attributes",
3108 | "tracing-core",
3109 | ]
3110 |
3111 | [[package]]
3112 | name = "tracing-attributes"
3113 | version = "0.1.24"
3114 | source = "registry+https://github.com/rust-lang/crates.io-index"
3115 | checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
3116 | dependencies = [
3117 | "proc-macro2",
3118 | "quote",
3119 | "syn 2.0.16",
3120 | ]
3121 |
3122 | [[package]]
3123 | name = "tracing-core"
3124 | version = "0.1.31"
3125 | source = "registry+https://github.com/rust-lang/crates.io-index"
3126 | checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
3127 | dependencies = [
3128 | "once_cell",
3129 | "valuable",
3130 | ]
3131 |
3132 | [[package]]
3133 | name = "tracing-log"
3134 | version = "0.1.3"
3135 | source = "registry+https://github.com/rust-lang/crates.io-index"
3136 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
3137 | dependencies = [
3138 | "lazy_static",
3139 | "log",
3140 | "tracing-core",
3141 | ]
3142 |
3143 | [[package]]
3144 | name = "tracing-subscriber"
3145 | version = "0.3.17"
3146 | source = "registry+https://github.com/rust-lang/crates.io-index"
3147 | checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
3148 | dependencies = [
3149 | "matchers",
3150 | "nu-ansi-term",
3151 | "once_cell",
3152 | "regex",
3153 | "sharded-slab",
3154 | "smallvec",
3155 | "thread_local",
3156 | "tracing",
3157 | "tracing-core",
3158 | "tracing-log",
3159 | ]
3160 |
3161 | [[package]]
3162 | name = "treediff"
3163 | version = "4.0.2"
3164 | source = "registry+https://github.com/rust-lang/crates.io-index"
3165 | checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303"
3166 | dependencies = [
3167 | "serde_json",
3168 | ]
3169 |
3170 | [[package]]
3171 | name = "typenum"
3172 | version = "1.16.0"
3173 | source = "registry+https://github.com/rust-lang/crates.io-index"
3174 | checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
3175 |
3176 | [[package]]
3177 | name = "unicode-bidi"
3178 | version = "0.3.13"
3179 | source = "registry+https://github.com/rust-lang/crates.io-index"
3180 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
3181 |
3182 | [[package]]
3183 | name = "unicode-ident"
3184 | version = "1.0.8"
3185 | source = "registry+https://github.com/rust-lang/crates.io-index"
3186 | checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
3187 |
3188 | [[package]]
3189 | name = "unicode-normalization"
3190 | version = "0.1.22"
3191 | source = "registry+https://github.com/rust-lang/crates.io-index"
3192 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
3193 | dependencies = [
3194 | "tinyvec",
3195 | ]
3196 |
3197 | [[package]]
3198 | name = "unicode-segmentation"
3199 | version = "1.10.1"
3200 | source = "registry+https://github.com/rust-lang/crates.io-index"
3201 | checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
3202 |
3203 | [[package]]
3204 | name = "url"
3205 | version = "2.3.1"
3206 | source = "registry+https://github.com/rust-lang/crates.io-index"
3207 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
3208 | dependencies = [
3209 | "form_urlencoded",
3210 | "idna",
3211 | "percent-encoding",
3212 | "serde",
3213 | ]
3214 |
3215 | [[package]]
3216 | name = "utf-8"
3217 | version = "0.7.6"
3218 | source = "registry+https://github.com/rust-lang/crates.io-index"
3219 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
3220 |
3221 | [[package]]
3222 | name = "uuid"
3223 | version = "1.3.3"
3224 | source = "registry+https://github.com/rust-lang/crates.io-index"
3225 | checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2"
3226 | dependencies = [
3227 | "getrandom 0.2.9",
3228 | ]
3229 |
3230 | [[package]]
3231 | name = "valuable"
3232 | version = "0.1.0"
3233 | source = "registry+https://github.com/rust-lang/crates.io-index"
3234 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
3235 |
3236 | [[package]]
3237 | name = "version-compare"
3238 | version = "0.0.11"
3239 | source = "registry+https://github.com/rust-lang/crates.io-index"
3240 | checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
3241 |
3242 | [[package]]
3243 | name = "version-compare"
3244 | version = "0.1.1"
3245 | source = "registry+https://github.com/rust-lang/crates.io-index"
3246 | checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
3247 |
3248 | [[package]]
3249 | name = "version_check"
3250 | version = "0.9.4"
3251 | source = "registry+https://github.com/rust-lang/crates.io-index"
3252 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
3253 |
3254 | [[package]]
3255 | name = "vswhom"
3256 | version = "0.1.0"
3257 | source = "registry+https://github.com/rust-lang/crates.io-index"
3258 | checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b"
3259 | dependencies = [
3260 | "libc",
3261 | "vswhom-sys",
3262 | ]
3263 |
3264 | [[package]]
3265 | name = "vswhom-sys"
3266 | version = "0.1.2"
3267 | source = "registry+https://github.com/rust-lang/crates.io-index"
3268 | checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18"
3269 | dependencies = [
3270 | "cc",
3271 | "libc",
3272 | ]
3273 |
3274 | [[package]]
3275 | name = "walkdir"
3276 | version = "2.3.3"
3277 | source = "registry+https://github.com/rust-lang/crates.io-index"
3278 | checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
3279 | dependencies = [
3280 | "same-file",
3281 | "winapi-util",
3282 | ]
3283 |
3284 | [[package]]
3285 | name = "wasi"
3286 | version = "0.9.0+wasi-snapshot-preview1"
3287 | source = "registry+https://github.com/rust-lang/crates.io-index"
3288 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
3289 |
3290 | [[package]]
3291 | name = "wasi"
3292 | version = "0.11.0+wasi-snapshot-preview1"
3293 | source = "registry+https://github.com/rust-lang/crates.io-index"
3294 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
3295 |
3296 | [[package]]
3297 | name = "wasm-bindgen"
3298 | version = "0.2.86"
3299 | source = "registry+https://github.com/rust-lang/crates.io-index"
3300 | checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73"
3301 | dependencies = [
3302 | "cfg-if",
3303 | "wasm-bindgen-macro",
3304 | ]
3305 |
3306 | [[package]]
3307 | name = "wasm-bindgen-backend"
3308 | version = "0.2.86"
3309 | source = "registry+https://github.com/rust-lang/crates.io-index"
3310 | checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb"
3311 | dependencies = [
3312 | "bumpalo",
3313 | "log",
3314 | "once_cell",
3315 | "proc-macro2",
3316 | "quote",
3317 | "syn 2.0.16",
3318 | "wasm-bindgen-shared",
3319 | ]
3320 |
3321 | [[package]]
3322 | name = "wasm-bindgen-futures"
3323 | version = "0.4.36"
3324 | source = "registry+https://github.com/rust-lang/crates.io-index"
3325 | checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e"
3326 | dependencies = [
3327 | "cfg-if",
3328 | "js-sys",
3329 | "wasm-bindgen",
3330 | "web-sys",
3331 | ]
3332 |
3333 | [[package]]
3334 | name = "wasm-bindgen-macro"
3335 | version = "0.2.86"
3336 | source = "registry+https://github.com/rust-lang/crates.io-index"
3337 | checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258"
3338 | dependencies = [
3339 | "quote",
3340 | "wasm-bindgen-macro-support",
3341 | ]
3342 |
3343 | [[package]]
3344 | name = "wasm-bindgen-macro-support"
3345 | version = "0.2.86"
3346 | source = "registry+https://github.com/rust-lang/crates.io-index"
3347 | checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
3348 | dependencies = [
3349 | "proc-macro2",
3350 | "quote",
3351 | "syn 2.0.16",
3352 | "wasm-bindgen-backend",
3353 | "wasm-bindgen-shared",
3354 | ]
3355 |
3356 | [[package]]
3357 | name = "wasm-bindgen-shared"
3358 | version = "0.2.86"
3359 | source = "registry+https://github.com/rust-lang/crates.io-index"
3360 | checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93"
3361 |
3362 | [[package]]
3363 | name = "web-sys"
3364 | version = "0.3.63"
3365 | source = "registry+https://github.com/rust-lang/crates.io-index"
3366 | checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2"
3367 | dependencies = [
3368 | "js-sys",
3369 | "wasm-bindgen",
3370 | ]
3371 |
3372 | [[package]]
3373 | name = "webkit2gtk"
3374 | version = "0.18.2"
3375 | source = "registry+https://github.com/rust-lang/crates.io-index"
3376 | checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370"
3377 | dependencies = [
3378 | "bitflags",
3379 | "cairo-rs",
3380 | "gdk",
3381 | "gdk-sys",
3382 | "gio",
3383 | "gio-sys",
3384 | "glib",
3385 | "glib-sys",
3386 | "gobject-sys",
3387 | "gtk",
3388 | "gtk-sys",
3389 | "javascriptcore-rs",
3390 | "libc",
3391 | "once_cell",
3392 | "soup2",
3393 | "webkit2gtk-sys",
3394 | ]
3395 |
3396 | [[package]]
3397 | name = "webkit2gtk-sys"
3398 | version = "0.18.0"
3399 | source = "registry+https://github.com/rust-lang/crates.io-index"
3400 | checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3"
3401 | dependencies = [
3402 | "atk-sys",
3403 | "bitflags",
3404 | "cairo-sys-rs",
3405 | "gdk-pixbuf-sys",
3406 | "gdk-sys",
3407 | "gio-sys",
3408 | "glib-sys",
3409 | "gobject-sys",
3410 | "gtk-sys",
3411 | "javascriptcore-rs-sys",
3412 | "libc",
3413 | "pango-sys",
3414 | "pkg-config",
3415 | "soup2-sys",
3416 | "system-deps 6.1.0",
3417 | ]
3418 |
3419 | [[package]]
3420 | name = "webview2-com"
3421 | version = "0.19.1"
3422 | source = "registry+https://github.com/rust-lang/crates.io-index"
3423 | checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178"
3424 | dependencies = [
3425 | "webview2-com-macros",
3426 | "webview2-com-sys",
3427 | "windows 0.39.0",
3428 | "windows-implement",
3429 | ]
3430 |
3431 | [[package]]
3432 | name = "webview2-com-macros"
3433 | version = "0.6.0"
3434 | source = "registry+https://github.com/rust-lang/crates.io-index"
3435 | checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac"
3436 | dependencies = [
3437 | "proc-macro2",
3438 | "quote",
3439 | "syn 1.0.109",
3440 | ]
3441 |
3442 | [[package]]
3443 | name = "webview2-com-sys"
3444 | version = "0.19.0"
3445 | source = "registry+https://github.com/rust-lang/crates.io-index"
3446 | checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7"
3447 | dependencies = [
3448 | "regex",
3449 | "serde",
3450 | "serde_json",
3451 | "thiserror",
3452 | "windows 0.39.0",
3453 | "windows-bindgen",
3454 | "windows-metadata",
3455 | ]
3456 |
3457 | [[package]]
3458 | name = "winapi"
3459 | version = "0.3.9"
3460 | source = "registry+https://github.com/rust-lang/crates.io-index"
3461 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
3462 | dependencies = [
3463 | "winapi-i686-pc-windows-gnu",
3464 | "winapi-x86_64-pc-windows-gnu",
3465 | ]
3466 |
3467 | [[package]]
3468 | name = "winapi-i686-pc-windows-gnu"
3469 | version = "0.4.0"
3470 | source = "registry+https://github.com/rust-lang/crates.io-index"
3471 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
3472 |
3473 | [[package]]
3474 | name = "winapi-util"
3475 | version = "0.1.5"
3476 | source = "registry+https://github.com/rust-lang/crates.io-index"
3477 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
3478 | dependencies = [
3479 | "winapi",
3480 | ]
3481 |
3482 | [[package]]
3483 | name = "winapi-x86_64-pc-windows-gnu"
3484 | version = "0.4.0"
3485 | source = "registry+https://github.com/rust-lang/crates.io-index"
3486 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
3487 |
3488 | [[package]]
3489 | name = "windows"
3490 | version = "0.37.0"
3491 | source = "registry+https://github.com/rust-lang/crates.io-index"
3492 | checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647"
3493 | dependencies = [
3494 | "windows_aarch64_msvc 0.37.0",
3495 | "windows_i686_gnu 0.37.0",
3496 | "windows_i686_msvc 0.37.0",
3497 | "windows_x86_64_gnu 0.37.0",
3498 | "windows_x86_64_msvc 0.37.0",
3499 | ]
3500 |
3501 | [[package]]
3502 | name = "windows"
3503 | version = "0.39.0"
3504 | source = "registry+https://github.com/rust-lang/crates.io-index"
3505 | checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a"
3506 | dependencies = [
3507 | "windows-implement",
3508 | "windows_aarch64_msvc 0.39.0",
3509 | "windows_i686_gnu 0.39.0",
3510 | "windows_i686_msvc 0.39.0",
3511 | "windows_x86_64_gnu 0.39.0",
3512 | "windows_x86_64_msvc 0.39.0",
3513 | ]
3514 |
3515 | [[package]]
3516 | name = "windows"
3517 | version = "0.48.0"
3518 | source = "registry+https://github.com/rust-lang/crates.io-index"
3519 | checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
3520 | dependencies = [
3521 | "windows-targets 0.48.0",
3522 | ]
3523 |
3524 | [[package]]
3525 | name = "windows-bindgen"
3526 | version = "0.39.0"
3527 | source = "registry+https://github.com/rust-lang/crates.io-index"
3528 | checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41"
3529 | dependencies = [
3530 | "windows-metadata",
3531 | "windows-tokens",
3532 | ]
3533 |
3534 | [[package]]
3535 | name = "windows-implement"
3536 | version = "0.39.0"
3537 | source = "registry+https://github.com/rust-lang/crates.io-index"
3538 | checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7"
3539 | dependencies = [
3540 | "syn 1.0.109",
3541 | "windows-tokens",
3542 | ]
3543 |
3544 | [[package]]
3545 | name = "windows-metadata"
3546 | version = "0.39.0"
3547 | source = "registry+https://github.com/rust-lang/crates.io-index"
3548 | checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278"
3549 |
3550 | [[package]]
3551 | name = "windows-sys"
3552 | version = "0.42.0"
3553 | source = "registry+https://github.com/rust-lang/crates.io-index"
3554 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
3555 | dependencies = [
3556 | "windows_aarch64_gnullvm 0.42.2",
3557 | "windows_aarch64_msvc 0.42.2",
3558 | "windows_i686_gnu 0.42.2",
3559 | "windows_i686_msvc 0.42.2",
3560 | "windows_x86_64_gnu 0.42.2",
3561 | "windows_x86_64_gnullvm 0.42.2",
3562 | "windows_x86_64_msvc 0.42.2",
3563 | ]
3564 |
3565 | [[package]]
3566 | name = "windows-sys"
3567 | version = "0.45.0"
3568 | source = "registry+https://github.com/rust-lang/crates.io-index"
3569 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
3570 | dependencies = [
3571 | "windows-targets 0.42.2",
3572 | ]
3573 |
3574 | [[package]]
3575 | name = "windows-sys"
3576 | version = "0.48.0"
3577 | source = "registry+https://github.com/rust-lang/crates.io-index"
3578 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
3579 | dependencies = [
3580 | "windows-targets 0.48.0",
3581 | ]
3582 |
3583 | [[package]]
3584 | name = "windows-targets"
3585 | version = "0.42.2"
3586 | source = "registry+https://github.com/rust-lang/crates.io-index"
3587 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
3588 | dependencies = [
3589 | "windows_aarch64_gnullvm 0.42.2",
3590 | "windows_aarch64_msvc 0.42.2",
3591 | "windows_i686_gnu 0.42.2",
3592 | "windows_i686_msvc 0.42.2",
3593 | "windows_x86_64_gnu 0.42.2",
3594 | "windows_x86_64_gnullvm 0.42.2",
3595 | "windows_x86_64_msvc 0.42.2",
3596 | ]
3597 |
3598 | [[package]]
3599 | name = "windows-targets"
3600 | version = "0.48.0"
3601 | source = "registry+https://github.com/rust-lang/crates.io-index"
3602 | checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
3603 | dependencies = [
3604 | "windows_aarch64_gnullvm 0.48.0",
3605 | "windows_aarch64_msvc 0.48.0",
3606 | "windows_i686_gnu 0.48.0",
3607 | "windows_i686_msvc 0.48.0",
3608 | "windows_x86_64_gnu 0.48.0",
3609 | "windows_x86_64_gnullvm 0.48.0",
3610 | "windows_x86_64_msvc 0.48.0",
3611 | ]
3612 |
3613 | [[package]]
3614 | name = "windows-tokens"
3615 | version = "0.39.0"
3616 | source = "registry+https://github.com/rust-lang/crates.io-index"
3617 | checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597"
3618 |
3619 | [[package]]
3620 | name = "windows_aarch64_gnullvm"
3621 | version = "0.42.2"
3622 | source = "registry+https://github.com/rust-lang/crates.io-index"
3623 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
3624 |
3625 | [[package]]
3626 | name = "windows_aarch64_gnullvm"
3627 | version = "0.48.0"
3628 | source = "registry+https://github.com/rust-lang/crates.io-index"
3629 | checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
3630 |
3631 | [[package]]
3632 | name = "windows_aarch64_msvc"
3633 | version = "0.37.0"
3634 | source = "registry+https://github.com/rust-lang/crates.io-index"
3635 | checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a"
3636 |
3637 | [[package]]
3638 | name = "windows_aarch64_msvc"
3639 | version = "0.39.0"
3640 | source = "registry+https://github.com/rust-lang/crates.io-index"
3641 | checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2"
3642 |
3643 | [[package]]
3644 | name = "windows_aarch64_msvc"
3645 | version = "0.42.2"
3646 | source = "registry+https://github.com/rust-lang/crates.io-index"
3647 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
3648 |
3649 | [[package]]
3650 | name = "windows_aarch64_msvc"
3651 | version = "0.48.0"
3652 | source = "registry+https://github.com/rust-lang/crates.io-index"
3653 | checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
3654 |
3655 | [[package]]
3656 | name = "windows_i686_gnu"
3657 | version = "0.37.0"
3658 | source = "registry+https://github.com/rust-lang/crates.io-index"
3659 | checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1"
3660 |
3661 | [[package]]
3662 | name = "windows_i686_gnu"
3663 | version = "0.39.0"
3664 | source = "registry+https://github.com/rust-lang/crates.io-index"
3665 | checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b"
3666 |
3667 | [[package]]
3668 | name = "windows_i686_gnu"
3669 | version = "0.42.2"
3670 | source = "registry+https://github.com/rust-lang/crates.io-index"
3671 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
3672 |
3673 | [[package]]
3674 | name = "windows_i686_gnu"
3675 | version = "0.48.0"
3676 | source = "registry+https://github.com/rust-lang/crates.io-index"
3677 | checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
3678 |
3679 | [[package]]
3680 | name = "windows_i686_msvc"
3681 | version = "0.37.0"
3682 | source = "registry+https://github.com/rust-lang/crates.io-index"
3683 | checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c"
3684 |
3685 | [[package]]
3686 | name = "windows_i686_msvc"
3687 | version = "0.39.0"
3688 | source = "registry+https://github.com/rust-lang/crates.io-index"
3689 | checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106"
3690 |
3691 | [[package]]
3692 | name = "windows_i686_msvc"
3693 | version = "0.42.2"
3694 | source = "registry+https://github.com/rust-lang/crates.io-index"
3695 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
3696 |
3697 | [[package]]
3698 | name = "windows_i686_msvc"
3699 | version = "0.48.0"
3700 | source = "registry+https://github.com/rust-lang/crates.io-index"
3701 | checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
3702 |
3703 | [[package]]
3704 | name = "windows_x86_64_gnu"
3705 | version = "0.37.0"
3706 | source = "registry+https://github.com/rust-lang/crates.io-index"
3707 | checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d"
3708 |
3709 | [[package]]
3710 | name = "windows_x86_64_gnu"
3711 | version = "0.39.0"
3712 | source = "registry+https://github.com/rust-lang/crates.io-index"
3713 | checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65"
3714 |
3715 | [[package]]
3716 | name = "windows_x86_64_gnu"
3717 | version = "0.42.2"
3718 | source = "registry+https://github.com/rust-lang/crates.io-index"
3719 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
3720 |
3721 | [[package]]
3722 | name = "windows_x86_64_gnu"
3723 | version = "0.48.0"
3724 | source = "registry+https://github.com/rust-lang/crates.io-index"
3725 | checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
3726 |
3727 | [[package]]
3728 | name = "windows_x86_64_gnullvm"
3729 | version = "0.42.2"
3730 | source = "registry+https://github.com/rust-lang/crates.io-index"
3731 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
3732 |
3733 | [[package]]
3734 | name = "windows_x86_64_gnullvm"
3735 | version = "0.48.0"
3736 | source = "registry+https://github.com/rust-lang/crates.io-index"
3737 | checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
3738 |
3739 | [[package]]
3740 | name = "windows_x86_64_msvc"
3741 | version = "0.37.0"
3742 | source = "registry+https://github.com/rust-lang/crates.io-index"
3743 | checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d"
3744 |
3745 | [[package]]
3746 | name = "windows_x86_64_msvc"
3747 | version = "0.39.0"
3748 | source = "registry+https://github.com/rust-lang/crates.io-index"
3749 | checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809"
3750 |
3751 | [[package]]
3752 | name = "windows_x86_64_msvc"
3753 | version = "0.42.2"
3754 | source = "registry+https://github.com/rust-lang/crates.io-index"
3755 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
3756 |
3757 | [[package]]
3758 | name = "windows_x86_64_msvc"
3759 | version = "0.48.0"
3760 | source = "registry+https://github.com/rust-lang/crates.io-index"
3761 | checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
3762 |
3763 | [[package]]
3764 | name = "winnow"
3765 | version = "0.4.1"
3766 | source = "registry+https://github.com/rust-lang/crates.io-index"
3767 | checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28"
3768 | dependencies = [
3769 | "memchr",
3770 | ]
3771 |
3772 | [[package]]
3773 | name = "winreg"
3774 | version = "0.11.0"
3775 | source = "registry+https://github.com/rust-lang/crates.io-index"
3776 | checksum = "76a1a57ff50e9b408431e8f97d5456f2807f8eb2a2cd79b06068fc87f8ecf189"
3777 | dependencies = [
3778 | "cfg-if",
3779 | "winapi",
3780 | ]
3781 |
3782 | [[package]]
3783 | name = "wry"
3784 | version = "0.24.4"
3785 | source = "registry+https://github.com/rust-lang/crates.io-index"
3786 | checksum = "88ef04bdad49eba2e01f06e53688c8413bd6a87b0bc14b72284465cf96e3578e"
3787 | dependencies = [
3788 | "base64 0.13.1",
3789 | "block",
3790 | "cocoa",
3791 | "core-graphics",
3792 | "crossbeam-channel",
3793 | "dunce",
3794 | "gdk",
3795 | "gio",
3796 | "glib",
3797 | "gtk",
3798 | "html5ever 0.25.2",
3799 | "http",
3800 | "kuchiki",
3801 | "libc",
3802 | "log",
3803 | "objc",
3804 | "objc_id",
3805 | "once_cell",
3806 | "serde",
3807 | "serde_json",
3808 | "sha2",
3809 | "soup2",
3810 | "tao",
3811 | "thiserror",
3812 | "url",
3813 | "webkit2gtk",
3814 | "webkit2gtk-sys",
3815 | "webview2-com",
3816 | "windows 0.39.0",
3817 | "windows-implement",
3818 | ]
3819 |
3820 | [[package]]
3821 | name = "x11"
3822 | version = "2.21.0"
3823 | source = "registry+https://github.com/rust-lang/crates.io-index"
3824 | checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e"
3825 | dependencies = [
3826 | "libc",
3827 | "pkg-config",
3828 | ]
3829 |
3830 | [[package]]
3831 | name = "x11-dl"
3832 | version = "2.21.0"
3833 | source = "registry+https://github.com/rust-lang/crates.io-index"
3834 | checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
3835 | dependencies = [
3836 | "libc",
3837 | "once_cell",
3838 | "pkg-config",
3839 | ]
3840 |
3841 | [[package]]
3842 | name = "xattr"
3843 | version = "0.2.3"
3844 | source = "registry+https://github.com/rust-lang/crates.io-index"
3845 | checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc"
3846 | dependencies = [
3847 | "libc",
3848 | ]
3849 |
3850 | [[package]]
3851 | name = "zip"
3852 | version = "0.6.6"
3853 | source = "registry+https://github.com/rust-lang/crates.io-index"
3854 | checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
3855 | dependencies = [
3856 | "aes",
3857 | "byteorder",
3858 | "bzip2",
3859 | "constant_time_eq",
3860 | "crc32fast",
3861 | "crossbeam-utils",
3862 | "flate2",
3863 | "hmac",
3864 | "pbkdf2",
3865 | "sha1",
3866 | "time",
3867 | "zstd",
3868 | ]
3869 |
3870 | [[package]]
3871 | name = "zstd"
3872 | version = "0.11.2+zstd.1.5.2"
3873 | source = "registry+https://github.com/rust-lang/crates.io-index"
3874 | checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
3875 | dependencies = [
3876 | "zstd-safe",
3877 | ]
3878 |
3879 | [[package]]
3880 | name = "zstd-safe"
3881 | version = "5.0.2+zstd.1.5.2"
3882 | source = "registry+https://github.com/rust-lang/crates.io-index"
3883 | checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
3884 | dependencies = [
3885 | "libc",
3886 | "zstd-sys",
3887 | ]
3888 |
3889 | [[package]]
3890 | name = "zstd-sys"
3891 | version = "2.0.8+zstd.1.5.5"
3892 | source = "registry+https://github.com/rust-lang/crates.io-index"
3893 | checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
3894 | dependencies = [
3895 | "cc",
3896 | "libc",
3897 | "pkg-config",
3898 | ]
3899 |
--------------------------------------------------------------------------------
/src-tauri/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "app"
3 | version = "0.1.0"
4 | description = ""
5 | authors = ["taiyuuki "]
6 | license = "MIT"
7 | repository = "https://github.com/taiyuuki/elepub"
8 | default-run = "app"
9 | edition = "2021"
10 | rust-version = "1.60"
11 |
12 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
13 |
14 | [build-dependencies]
15 | tauri-build = { version = "1.5.0", features = [] }
16 |
17 | [dependencies]
18 | serde_json = "1.0"
19 | serde = { version = "1.0", features = ["derive"] }
20 | tauri = { version = "1.5.0", features = [
21 | "fs-exists",
22 | "dialog-all",
23 | "shell-open",
24 | "protocol-asset",
25 | ] }
26 | zip = "0.6.6"
27 |
28 | [features]
29 | # this feature is used for production builds or when `devPath` points to the filesystem and the built-in dev server is disabled.
30 | # If you use cargo directly instead of tauri's cli you can use this feature flag to switch between tauri's `dev` and `build` modes.
31 | # DO NOT REMOVE!!
32 | custom-protocol = ["tauri/custom-protocol"]
33 |
--------------------------------------------------------------------------------
/src-tauri/build.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | tauri_build::build()
3 | }
4 |
--------------------------------------------------------------------------------
/src-tauri/icons/128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/src-tauri/icons/128x128.png
--------------------------------------------------------------------------------
/src-tauri/icons/128x128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/src-tauri/icons/128x128@2x.png
--------------------------------------------------------------------------------
/src-tauri/icons/32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/src-tauri/icons/32x32.png
--------------------------------------------------------------------------------
/src-tauri/icons/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/src-tauri/icons/icon.icns
--------------------------------------------------------------------------------
/src-tauri/icons/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/src-tauri/icons/icon.ico
--------------------------------------------------------------------------------
/src-tauri/src/epub.rs:
--------------------------------------------------------------------------------
1 | use serde::Deserialize;
2 | use std::{fs::File, io::prelude::*};
3 | use zip::write::FileOptions;
4 |
5 | mod template;
6 |
7 | pub enum FileContent {
8 | Text(String),
9 | ImagePath(String),
10 | }
11 |
12 | use FileContent::{ImagePath, Text};
13 |
14 | pub enum Compression {
15 | Store,
16 | Zip,
17 | }
18 |
19 | pub struct EpubFile {
20 | pub dir: String,
21 | pub name: String,
22 | pub content: FileContent,
23 | pub compress: Compression,
24 | }
25 |
26 | impl EpubFile {
27 | pub fn new(dir: &str, name: &str, content: FileContent, compress: Compression) -> EpubFile {
28 | EpubFile {
29 | dir: String::from(dir),
30 | name: String::from(name),
31 | content,
32 | compress,
33 | }
34 | }
35 | }
36 |
37 | #[derive(Deserialize)]
38 | pub struct Image {
39 | title: String,
40 | xhtml: String,
41 | name: String,
42 | path: String,
43 | index: bool,
44 | mime: String,
45 | }
46 |
47 | #[derive(Deserialize)]
48 | pub struct Metadata {
49 | pub id: String,
50 | pub cover: Image,
51 | pub title: String,
52 | pub author: String,
53 | pub images: Vec,
54 | pub output: String,
55 | pub creator: String,
56 | pub volume: String,
57 | pub publisher: String,
58 | pub description: String,
59 | pub date: String,
60 | }
61 |
62 | fn get_image(image: &Image) -> EpubFile {
63 | let image_path = String::from(&image.path);
64 | EpubFile::new(
65 | "OEBPF/images/",
66 | &image.name,
67 | ImagePath(image_path),
68 | Compression::Zip,
69 | )
70 | }
71 |
72 | fn get_mimetype() -> EpubFile {
73 | EpubFile::new(
74 | "",
75 | "mimetype",
76 | Text("application/epub+zip".to_string()),
77 | Compression::Store,
78 | )
79 | }
80 |
81 | fn get_duokan_extension() -> EpubFile {
82 | EpubFile::new(
83 | "META-INF/",
84 | "duokan-extension.xml",
85 | Text(String::from(template::MIMETYPE)),
86 | Compression::Zip,
87 | )
88 | }
89 |
90 | fn get_container() -> EpubFile {
91 | EpubFile::new(
92 | "META-INF/",
93 | "container.xml",
94 | Text(String::from(template::CONTAINER)),
95 | Compression::Zip,
96 | )
97 | }
98 |
99 | fn get_section(image: &Image) -> EpubFile {
100 | EpubFile::new(
101 | "OEBPF/content/",
102 | &image.xhtml,
103 | Text(
104 | template::SECTION
105 | .replace("{title}", &image.title)
106 | .replace("{image}", &image.name),
107 | ),
108 | Compression::Zip,
109 | )
110 | }
111 |
112 | fn get_css() -> EpubFile {
113 | EpubFile::new(
114 | "OEBPF/css/",
115 | "ebook.css",
116 | Text(String::from(template::CSS)),
117 | Compression::Zip,
118 | )
119 | }
120 |
121 | fn get_cover(image: &Image) -> EpubFile {
122 | EpubFile::new(
123 | "OEBPF/",
124 | "cover.xhtml",
125 | Text(
126 | template::COVER
127 | .replace("{title}", &image.title)
128 | .replace("{cover}", &image.name),
129 | ),
130 | Compression::Zip,
131 | )
132 | }
133 |
134 | fn get_message(meta: &Metadata) -> EpubFile {
135 | EpubFile::new(
136 | "OEBPF/content/",
137 | "msg.xhtml",
138 | Text(
139 | template::MESSAGE
140 | .replace("{title}", &meta.title)
141 | .replace("{author}", &meta.author)
142 | .replace("{creator}", &meta.creator)
143 | .replace("{volume}", &meta.volume),
144 | ),
145 | Compression::Zip,
146 | )
147 | }
148 |
149 | fn get_opf(meta: &Metadata) -> EpubFile {
150 | let mut opf_file = String::new();
151 | opf_file += r#"
152 |
153 | "#;
154 | opf_file += &format!(
155 | " {}{}\n",
156 | &meta.title, &meta.volume
157 | );
158 | opf_file += &format!(
159 | " {}\n",
160 | &meta.id
161 | );
162 | opf_file += " zh-CN\n";
163 | opf_file += &format!(
164 | " {}\n",
165 | &meta.author
166 | );
167 | opf_file += &format!(" {}\n", &meta.publisher);
168 | opf_file += &format!(
169 | " {}\n",
170 | &meta.description
171 | );
172 | opf_file += &format!(
173 | " {}\n",
174 | &meta.date
175 | );
176 | opf_file += r#" undefined
177 |
178 |
179 |
180 |
181 | "#;
182 | opf_file += &format!(
183 | " \n",
184 | &meta.cover.name
185 | );
186 | opf_file += r#"
187 |
188 |
189 | "#;
190 | let mut i = 2;
191 | for image in &meta.images {
192 | opf_file += &format!(
193 | " \n",
194 | i, &image.xhtml
195 | );
196 | i += 1;
197 | }
198 | opf_file += " \n";
199 | i = 0;
200 | for image in &meta.images {
201 | opf_file += &format!(
202 | " \n",
203 | i, &image.mime, &image.name
204 | );
205 | i += 1;
206 | }
207 | opf_file += &format!(
208 | " \n",
209 | i, &meta.cover.mime, &meta.cover.name
210 | );
211 | opf_file += r#"
212 |
213 |
214 |
215 | "#;
216 | i = 2;
217 | for _image in &meta.images {
218 | opf_file += &format!(" \n", i);
219 | i += 1;
220 | }
221 | opf_file += r#"
222 | "#;
223 | EpubFile::new("OEBPF/", "ebook.opf", Text(opf_file), Compression::Zip)
224 | }
225 |
226 | fn get_ncx(meta: &Metadata) -> EpubFile {
227 | let mut ncx_file = String::new();
228 | ncx_file += r#"
229 |
230 |
231 |
232 | "#;
233 | ncx_file += &format!(" \n", &meta.id);
234 | ncx_file += r#"
235 |
236 |
237 |
238 | "#;
239 | ncx_file += &format!("{}\n", &meta.title);
240 | ncx_file += &format!("{}\n", &meta.author);
241 | ncx_file += r#"
242 |
243 | Cover
244 |
245 |
246 | "#;
247 | let mut i = 2;
248 | let mut o = 2;
249 | for image in &meta.images {
250 | if image.index {
251 | ncx_file += &format!(" \n", i, o);
252 | ncx_file += &format!(" {}\n", &image.title);
253 | ncx_file += &format!(" \n", &image.xhtml);
254 | ncx_file += " \n";
255 | o += 1;
256 | }
257 | i += 1;
258 | }
259 | ncx_file += "\n";
260 | ncx_file += "";
261 | EpubFile::new("OEBPF/", "navigation.ncx", Text(ncx_file), Compression::Zip)
262 | }
263 |
264 | pub struct Epub {
265 | pub id: String,
266 | pub author: String,
267 | pub files: Vec,
268 | pub output: String,
269 | }
270 |
271 | impl Epub {
272 | pub fn new(meta: Metadata) -> Epub {
273 | let mut files: Vec = vec![];
274 | files.push(get_mimetype());
275 | files.push(get_duokan_extension());
276 | files.push(get_container());
277 | files.push(get_opf(&meta));
278 | files.push(get_ncx(&meta));
279 | files.push(get_css());
280 | files.push(get_cover(&meta.cover));
281 | files.push(get_image(&meta.cover));
282 | files.push(get_message(&meta));
283 | for image in &meta.images {
284 | files.push(get_section(&image));
285 | files.push(get_image(&image));
286 | }
287 | Epub {
288 | id: meta.id,
289 | author: meta.author,
290 | files,
291 | output: meta.output,
292 | }
293 | }
294 | pub fn generate_epub(&mut self, get_progress: F) -> zip::result::ZipResult<()>
295 | where
296 | F: Fn(f32) -> (),
297 | {
298 | let file = std::fs::File::create(&self.output).unwrap();
299 | let mut zip = zip::ZipWriter::new(file);
300 |
301 | let option_zip = FileOptions::default()
302 | .compression_method(zip::CompressionMethod::Deflated)
303 | .compression_level(Some(1));
304 | let option_store =
305 | FileOptions::default().compression_method(zip::CompressionMethod::Stored);
306 | let mut i = 0;
307 | for file in &self.files {
308 | get_progress(i as f32 / self.files.len() as f32);
309 | zip.start_file(
310 | format!("{}{}", file.dir, file.name),
311 | match file.compress {
312 | Compression::Zip => option_zip,
313 | Compression::Store => option_store,
314 | },
315 | )?;
316 | match &file.content {
317 | Text(c) => {
318 | zip.write_all(c.as_bytes())?;
319 | }
320 | ImagePath(path) => {
321 | let mut file = match File::open(path) {
322 | Ok(f) => f,
323 | Err(_) => {
324 | zip.write("文件不存在".as_bytes())?;
325 | continue;
326 | }
327 | };
328 | let mut data = vec![];
329 | file.read_to_end(&mut data).expect("图片读取失败");
330 | zip.write_all(&data)?;
331 | }
332 | };
333 | i += 1;
334 | }
335 | zip.finish()?;
336 |
337 | Ok(())
338 | }
339 | }
340 |
--------------------------------------------------------------------------------
/src-tauri/src/epub/template.rs:
--------------------------------------------------------------------------------
1 | pub const COVER: &str = r#"
2 |
3 |
4 |
5 | {title}
6 |
11 |
12 |
13 |
14 |
15 | "#;
16 |
17 | pub const MIMETYPE: &str = r#"
18 |
19 |
20 |
21 |
22 |
23 |
24 | "#;
25 |
26 | pub const CONTAINER: &str = r#"
27 |
28 |
29 |
30 |
31 | "#;
32 |
33 | pub const SECTION: &str = r#"
34 |
35 |
36 |
37 | {title}
38 |
39 |
40 |
41 |
42 |

43 |
44 |
45 | "#;
46 |
47 | pub const CSS: &str = r#"body {
48 | padding: 0;
49 | margin: 0;
50 | text-indent: 0;
51 | duokan-text-indent: 0;
52 | }
53 | p {
54 | text-indent: 0;
55 | duokan-text-indent: 0;
56 | display: block;
57 | line-height: 1.3em;
58 | margin-top: 0.6em;
59 | margin-bottom: 0.6em;
60 | }
61 | div {
62 | text-indent: 0;
63 | duokan-text-indent: 0;
64 | margin: 0;
65 | padding: 0;
66 | text-align: justify;
67 | }
68 | img {
69 | width: 100%;
70 | }
71 | a {
72 | text-decoration: none;
73 | }
74 | a:hover {
75 | background-color: rgba(0, 0, 0, 0.5);
76 | }
77 | .box {
78 | color: #258;
79 | padding: 5px;
80 | margin: 10% -0.25em;
81 | border: 1px solid #258;
82 | background-color: rgba(34, 85, 136, 0.1);
83 | }
84 | .box p {
85 | font-size: 0.8em;
86 | }
87 | .book {
88 | font-family: "微软雅黑", "黑体", "ht", "sans-serif";
89 | }
90 | .book p {
91 | font-size: 1em;
92 | text-shadow: 1px 1px 1px #fff;
93 | text-indent: 0;
94 | duokan-text-indent: 0;
95 | }
96 | .meg {
97 | margin: -5px;
98 | padding: 5px;
99 | color: #fff;
100 | font-family: "gy", "DK-FANGSONG", "fs", "fangsong", "仿宋";
101 | font-weight: bold;
102 | font-size: 1.2em;
103 | text-indent: 0;
104 | duokan-text-indent: 0;
105 | text-align: center;
106 | line-height: 120%;
107 | background-color: #258;
108 | }
109 | .option {
110 | font-family: "gy", "DK-FANGSONG", "fs", "fangsong", "仿宋";
111 | font-size: 1em;
112 | font-weight: bold;
113 | margin: -5px;
114 | padding: 5px;
115 | line-height: 120%;
116 | background-color: rgba(34, 85, 136, 0.8);
117 | color: #fff;
118 | }
119 | .option p {
120 | text-indent: -4em;
121 | duokan-text-indent: -4em;
122 | padding-left: 4em;
123 | }"#;
124 |
125 | pub const MESSAGE: &str = r#"
126 |
127 |
128 |
129 | 说明
130 |
131 |
132 |
133 |
134 |
135 |
说明
136 |
137 |
书 名:{title} {volume}
138 |
图 文:{author}
139 |
制 作:{creator}
140 |
141 |
146 |
147 |
148 |
149 | "#;
150 |
--------------------------------------------------------------------------------
/src-tauri/src/main.rs:
--------------------------------------------------------------------------------
1 | // Prevents additional console window on Windows in release, DO NOT REMOVE!!
2 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
3 |
4 | mod epub;
5 | use epub::Epub;
6 | use tauri::{AppHandle, Manager};
7 |
8 | #[tauri::command]
9 | fn get_meta(meta: epub::Metadata, app_handel: AppHandle) -> String {
10 | let mut epub = Epub::new(meta);
11 | match epub.generate_epub(|payload| match app_handel.emit_all("progress", payload) {
12 | Ok(c) => c,
13 | _ => panic!("通信失败"),
14 | }) {
15 | Ok(_) => String::from("OK"),
16 | _ => String::from("Err"),
17 | }
18 | }
19 |
20 | fn main() {
21 | tauri::Builder::default()
22 | .invoke_handler(tauri::generate_handler![get_meta])
23 | .run(tauri::generate_context!())
24 | .expect("error while running tauri application");
25 | }
26 |
--------------------------------------------------------------------------------
/src-tauri/tauri.conf.json:
--------------------------------------------------------------------------------
1 | {
2 | "build": {
3 | "beforeDevCommand": "pnpm dev",
4 | "beforeBuildCommand": "pnpm build",
5 | "devPath": "http://localhost:9100",
6 | "distDir": "../dist/ssg",
7 | "withGlobalTauri": false
8 | },
9 | "package": {
10 | "productName": "elepub",
11 | "version": "3.0.2"
12 | },
13 | "tauri": {
14 | "allowlist": {
15 | "all": false,
16 | "shell": {
17 | "all": false,
18 | "open": true
19 | },
20 | "dialog": {
21 | "all": true,
22 | "open": true,
23 | "save": true
24 | },
25 | "protocol": {
26 | "all": false,
27 | "asset": true,
28 | "assetScope": [
29 | "$PICTURE"
30 | ]
31 | },
32 | "fs": {
33 | "all": false,
34 | "copyFile": false,
35 | "createDir": false,
36 | "exists": true,
37 | "readDir": false,
38 | "readFile": false,
39 | "removeDir": false,
40 | "removeFile": false,
41 | "renameFile": false,
42 | "scope": [
43 | "**"
44 | ],
45 | "writeFile": false
46 | }
47 | },
48 | "bundle": {
49 | "active": true,
50 | "icon": [
51 | "icons/32x32.png",
52 | "icons/128x128.png",
53 | "icons/128x128@2x.png",
54 | "icons/icon.ico"
55 | ],
56 | "identifier": "com.tauri.elepub",
57 | "targets": "all",
58 | "windows": {
59 | "wix": {
60 | "language": "zh-CN"
61 | }
62 | }
63 | },
64 | "security": {
65 | "csp": ""
66 | },
67 | "updater": {
68 | "active": false
69 | },
70 | "windows": [
71 | {
72 | "fullscreen": false,
73 | "resizable": true,
74 | "title": "多看漫画制作",
75 | "width": 1024,
76 | "height": 600
77 | }
78 | ]
79 | }
80 | }
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/assets/quasar-logo-vertical.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/auto-imports.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | /* prettier-ignore */
3 | // @ts-nocheck
4 | // noinspection JSUnusedGlobalSymbols
5 | // Generated by unplugin-auto-import
6 | export {}
7 | declare global {
8 | const AxiosInstance: typeof import('axios')['AxiosInstance']
9 | const Dialog: typeof import('quasar')['Dialog']
10 | const EffectScope: typeof import('vue')['EffectScope']
11 | const LocalStorage: typeof import('quasar')['LocalStorage']
12 | const Notify: typeof import('quasar')['Notify']
13 | const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
14 | const axios: typeof import('axios')['default']
15 | const boot: typeof import('quasar/wrappers')['boot']
16 | const computed: typeof import('vue')['computed']
17 | const createApp: typeof import('vue')['createApp']
18 | const createPinia: typeof import('pinia')['createPinia']
19 | const customRef: typeof import('vue')['customRef']
20 | const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
21 | const defineComponent: typeof import('vue')['defineComponent']
22 | const defineStore: typeof import('pinia')['defineStore']
23 | const effectScope: typeof import('vue')['effectScope']
24 | const getActivePinia: typeof import('pinia')['getActivePinia']
25 | const getCurrentInstance: typeof import('vue')['getCurrentInstance']
26 | const getCurrentScope: typeof import('vue')['getCurrentScope']
27 | const h: typeof import('vue')['h']
28 | const inject: typeof import('vue')['inject']
29 | const isProxy: typeof import('vue')['isProxy']
30 | const isReactive: typeof import('vue')['isReactive']
31 | const isReadonly: typeof import('vue')['isReadonly']
32 | const isRef: typeof import('vue')['isRef']
33 | const mapActions: typeof import('pinia')['mapActions']
34 | const mapGetters: typeof import('pinia')['mapGetters']
35 | const mapState: typeof import('pinia')['mapState']
36 | const mapStores: typeof import('pinia')['mapStores']
37 | const mapWritableState: typeof import('pinia')['mapWritableState']
38 | const markRaw: typeof import('vue')['markRaw']
39 | const nextTick: typeof import('vue')['nextTick']
40 | const onActivated: typeof import('vue')['onActivated']
41 | const onBeforeMount: typeof import('vue')['onBeforeMount']
42 | const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
43 | const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
44 | const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
45 | const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
46 | const onDeactivated: typeof import('vue')['onDeactivated']
47 | const onErrorCaptured: typeof import('vue')['onErrorCaptured']
48 | const onMounted: typeof import('vue')['onMounted']
49 | const onRenderTracked: typeof import('vue')['onRenderTracked']
50 | const onRenderTriggered: typeof import('vue')['onRenderTriggered']
51 | const onScopeDispose: typeof import('vue')['onScopeDispose']
52 | const onServerPrefetch: typeof import('vue')['onServerPrefetch']
53 | const onUnmounted: typeof import('vue')['onUnmounted']
54 | const onUpdated: typeof import('vue')['onUpdated']
55 | const provide: typeof import('vue')['provide']
56 | const reactive: typeof import('vue')['reactive']
57 | const readonly: typeof import('vue')['readonly']
58 | const ref: typeof import('vue')['ref']
59 | const resolveComponent: typeof import('vue')['resolveComponent']
60 | const setActivePinia: typeof import('pinia')['setActivePinia']
61 | const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
62 | const shallowReactive: typeof import('vue')['shallowReactive']
63 | const shallowReadonly: typeof import('vue')['shallowReadonly']
64 | const shallowRef: typeof import('vue')['shallowRef']
65 | const storeToRefs: typeof import('pinia')['storeToRefs']
66 | const toRaw: typeof import('vue')['toRaw']
67 | const toRef: typeof import('vue')['toRef']
68 | const toRefs: typeof import('vue')['toRefs']
69 | const toValue: typeof import('vue')['toValue']
70 | const triggerRef: typeof import('vue')['triggerRef']
71 | const unref: typeof import('vue')['unref']
72 | const useAttrs: typeof import('vue')['useAttrs']
73 | const useCssModule: typeof import('vue')['useCssModule']
74 | const useCssVars: typeof import('vue')['useCssVars']
75 | const useLink: typeof import('vue-router')['useLink']
76 | const useMeta: typeof import('quasar')['useMeta']
77 | const useQuasar: typeof import('quasar')['useQuasar']
78 | const useRoute: typeof import('vue-router')['useRoute']
79 | const useRouter: typeof import('vue-router')['useRouter']
80 | const useSlots: typeof import('vue')['useSlots']
81 | const watch: typeof import('vue')['watch']
82 | const watchEffect: typeof import('vue')['watchEffect']
83 | const watchPostEffect: typeof import('vue')['watchPostEffect']
84 | const watchSyncEffect: typeof import('vue')['watchSyncEffect']
85 | }
86 | // for type re-export
87 | declare global {
88 | // @ts-ignore
89 | export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
90 | }
91 |
--------------------------------------------------------------------------------
/src/boot/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/taiyuuki/elepub/52dea53ce115e16fe8aef4b36f7b482f29f91312/src/boot/.gitkeep
--------------------------------------------------------------------------------
/src/boot/unocss.ts:
--------------------------------------------------------------------------------
1 | import 'uno.css'
2 |
--------------------------------------------------------------------------------
/src/components.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | /* prettier-ignore */
3 | // @ts-nocheck
4 | // Generated by unplugin-vue-components
5 | // Read more: https://github.com/vuejs/core/pull/3399
6 | import '@vue/runtime-core'
7 |
8 | export {}
9 |
10 | declare module '@vue/runtime-core' {
11 | export interface GlobalComponents {
12 | ImagePreview: typeof import('./components/ImagePreview.vue')['default']
13 | MainHeader: typeof import('./components/MainHeader.vue')['default']
14 | RouterLink: typeof import('vue-router')['RouterLink']
15 | RouterView: typeof import('vue-router')['RouterView']
16 | SetMeta: typeof import('./components/SetMeta.vue')['default']
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/components/ImagePreview.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
110 |
111 |
112 |
118 |
123 |
124 | 预览
125 |
126 |
134 |
135 |
144 |
![]()
149 |
158 | {{ i + 1 }}
159 |
160 |
161 |
162 |
163 |
167 |
168 |
169 |
170 |
171 |
176 |
177 |
182 |
183 | 图片列表
184 | ({{ imagesCount }})
188 |
189 |
190 |
191 |
197 |
198 |
199 |
207 |
208 | {{ image.name }}
209 |
210 |
219 |
226 |
232 |
237 | 添加至目录
238 |
239 |
240 |
247 |
253 |
258 | 设为封面
259 |
260 |
261 |
267 |
273 |
278 | 删除
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
293 |
294 |
295 | 目录
296 |
297 |
301 |
307 |
312 |
317 | 清空目录
318 |
319 |
320 |
326 |
331 |
336 | 重置目录标题
337 |
338 |
339 |
343 |
367 |
368 |
369 |
370 |
371 |
378 |
379 |
380 |
388 |
389 |
398 | {{
399 | item
400 | }}
401 |
402 |
403 |
412 |
418 |
424 |
429 | 删除
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
462 |
--------------------------------------------------------------------------------
/src/components/MainHeader.vue:
--------------------------------------------------------------------------------
1 |
168 |
169 |
170 |
171 |
172 |
173 |
180 |
186 | 添加
187 |
192 | 添加图片
193 |
194 |
195 |
202 |
208 | 清空
209 |
214 | 清空图片
215 |
216 |
217 |
224 |
230 | 保存
231 |
236 | 保存EPUB
237 |
238 |
239 |
240 |
246 |
251 |
252 |
253 |
254 |
255 |
--------------------------------------------------------------------------------
/src/components/SetMeta.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
70 |
71 |
72 |
78 |
82 |
86 |
90 |
91 |
96 |
121 |
126 |
131 |
136 |
141 |
142 |
148 |
153 | 随机id
154 |
155 |
156 |
157 |
158 |
163 |
168 |
174 |
175 |
176 |
177 |
181 |
191 |
196 |
197 |
198 | 每张图片都会被列入目录
199 |
200 |
201 |
202 |
206 |
207 | 设置标记,例如“01.jpg”,则名称为'xxx-01.jpg'的图片都会被列入目录,支持正则表达式,区分大小写。
208 |
209 |
214 |
221 |
226 | 本集开始于第几话
227 |
228 |
229 |
230 |
231 |
232 |
233 | 以固定页数设置目录
234 |
235 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
253 |
258 |
261 |
268 |
269 |
273 | {{ output }}
274 | 选择保存路径
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
288 |
--------------------------------------------------------------------------------
/src/composables/use-drawer.ts:
--------------------------------------------------------------------------------
1 | export const showDrawer = ref(true)
2 |
--------------------------------------------------------------------------------
/src/composables/use-images.ts:
--------------------------------------------------------------------------------
1 | import { is_empty_obj, object_keys, throttle } from '@taiyuuki/utils'
2 | import { chapterMode, firstPage, pageCount, firstChapter } from './use-options'
3 |
4 | interface ImageFile {
5 | path: string
6 | name: string
7 | url: string
8 | }
9 |
10 | const cover = ref({
11 | path: '',
12 | name: '',
13 | url: '',
14 | })
15 |
16 | const images = reactive([])
17 |
18 | const contents = reactive>({})
19 |
20 | export function useCover() {
21 | return cover
22 | }
23 |
24 | export function useImages() {
25 | return images
26 | }
27 |
28 | export function useContents() {
29 | return contents
30 | }
31 |
32 | // 清空目录
33 | export function clearContents() {
34 | const kyes = object_keys(contents)
35 | kyes.forEach(key => {
36 | delete contents[key]
37 | })
38 | }
39 |
40 | // 移除目录
41 | export function removeContentsItem(i: string | number) {
42 | delete contents[i]
43 | }
44 |
45 | let mode_1 = true // 默认
46 | let mode_2 = false// 按标记
47 | let mode_3 = false// 按页数
48 |
49 | export function setContentsMode() {
50 | mode_1
51 | = chapterMode.value === 'default'
52 | || (chapterMode.value === 'mark' && firstPage.value.trim().length === 0)
53 | mode_2
54 | = chapterMode.value === 'mark' && firstPage.value.trim().length > 0
55 | mode_3 = chapterMode.value === 'count' && pageCount.value !== 1
56 | }
57 |
58 | export function setContent(file: ImageFile, i: number, count: number) {
59 | if (mode_1) {
60 | contents[i] = `P${i + 1}`
61 | }
62 | else if (mode_2) {
63 | const regM = new RegExp(firstPage.value)
64 | const check = regM.test(file.name)
65 | if (check) {
66 | contents[i] = `第${count.toFixed(0)}话`
67 | return true
68 | }
69 | }
70 | else if (mode_3) {
71 | if (i % pageCount.value === 0) {
72 | const count = Number(pageCount.value)
73 | let title = `P${i + 1}-P${i + count}`
74 | const length = images.length
75 | if (i + count >= length) {
76 | title = `P${i + 1}-P${length}`
77 | }
78 | contents[i] = title
79 | }
80 | }
81 | }
82 |
83 | export function setContents() {
84 | setContentsMode()
85 | if (!is_empty_obj(contents)) {
86 | clearContents()
87 | }
88 | let count = Number(firstChapter.value)
89 | images.forEach((image, i) => {
90 | if (setContent(image, i, count)) {
91 | count++
92 | }
93 | })
94 | }
95 |
96 | export const triggerSetContents = throttle(setContents, 500)
97 |
--------------------------------------------------------------------------------
/src/composables/use-loading.ts:
--------------------------------------------------------------------------------
1 | export const importing = ref(false)
2 |
3 | export const generating = ref(false)
4 |
5 | export const payload = ref(0)
6 |
7 | export const progress = computed(() => {
8 | return payload.value.toFixed(0) + '%'
9 | })
10 |
--------------------------------------------------------------------------------
/src/composables/use-meta.ts:
--------------------------------------------------------------------------------
1 | const meta = reactive({
2 | id: '0',
3 | cover: {
4 | index: false,
5 | name: '',
6 | path: '',
7 | title: '',
8 | xhtml: '',
9 | mime: 'image/jpeg',
10 | },
11 | title: '',
12 | author: '',
13 | images: [],
14 | output: '',
15 | creator: '',
16 | volume: '',
17 | publisher: '',
18 | description: '',
19 | date: '',
20 | })
21 |
22 | export const volume = ref('')
23 |
24 | export function useMeta() {
25 | return meta
26 | }
27 |
--------------------------------------------------------------------------------
/src/composables/use-options.ts:
--------------------------------------------------------------------------------
1 | import { storage_get, storage_set } from '@taiyuuki/utils'
2 |
3 | export const confoundingImage = ref(false)
4 | export const confoundingXhtml = ref(false)
5 | export const chapterMode = ref('default')
6 | export const firstChapter = ref(1)
7 | export const pageCount = ref(10)
8 | export const firstPage = ref('')
9 | export const output = ref('')
10 |
11 | export function useOptions() {
12 | onMounted(() => {
13 | output.value = storage_get('output') || ''
14 | })
15 |
16 | watch(output, (value) => {
17 | storage_set('output', value)
18 | })
19 | return {
20 | confoundingImage, confoundingXhtml, chapterMode, firstChapter, pageCount, firstPage, output,
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/css/app.scss:
--------------------------------------------------------------------------------
1 | // app global css in SCSS form
2 | :root {
3 | --primary: #1976d2;
4 | --secondary: #ef3473;
5 | --font-color: #000;
6 |
7 | overflow-x: hidden;
8 | overflow-y: auto;
9 | }
10 |
11 | .q-dialog-plugin {
12 | background-color: #fff;
13 | color: var(--secondary);
14 |
15 | .q-dialog__title {
16 | background-color: var(--secondary);
17 | color: #fff;
18 | padding: 0 10px;
19 | margin-bottom: 16px;
20 | font-size: 16px;
21 | }
22 |
23 | .q-dialog__message {
24 | padding: 0 16px;
25 | }
26 |
27 | .q-card__actions {
28 | span {
29 | color: var(--secondary);
30 | }
31 | }
32 | }
33 |
34 | html {
35 | -webkit-overflow-scrolling: touch;
36 | scrollbar-color: var(--primary) !important;
37 | scrollbar-width: thin;
38 |
39 | // scroll-behavior: smooth;
40 |
41 | ::-webkit-scrollbar {
42 | width: 8px;
43 | height: 8px;
44 | background-color: transparent !important;
45 | }
46 |
47 | ::-webkit-scrollbar-thumb {
48 | background-color: var(--primary) !important;
49 | border-radius: 4px;
50 | }
51 | }
52 |
53 | body {
54 | box-sizing: border-box;
55 | width: 100vw !important;
56 | margin: 0;
57 | padding: 0;
58 | overflow: hidden;
59 | }
60 |
61 | :root body {
62 | position: absolute !important;
63 | }
--------------------------------------------------------------------------------
/src/css/quasar.variables.scss:
--------------------------------------------------------------------------------
1 | // Quasar SCSS (& Sass) Variables
2 | // --------------------------------------------------
3 | // To customize the look and feel of this app, you can override
4 | // the Sass/SCSS variables found in Quasar's source Sass/SCSS files.
5 |
6 | // Check documentation for full list of Quasar variables
7 |
8 | // Your own variables (that are declared here) and Quasar's own
9 | // ones will be available out of the box in your .vue/.scss/.sass files
10 |
11 | // It's highly recommended to change the default colors
12 | // to match your app's branding.
13 | // Tip: Use the "Theme Builder" on Quasar's documentation website.
14 |
15 | $primary : #1976D2;
16 | $secondary : #26A69A;
17 | $accent : #9C27B0;
18 |
19 | $dark : #1D1D1D;
20 | $dark-page : #121212;
21 |
22 | $positive : #21BA45;
23 | $negative : #C10015;
24 | $info : #31CCEC;
25 | $warning : #F2C037;
26 |
--------------------------------------------------------------------------------
/src/elepub.d.ts:
--------------------------------------------------------------------------------
1 | declare interface ImageInfo {
2 | title: string,
3 | xhtml: string,
4 | name: string,
5 | path: string,
6 | index: boolean,
7 | mime: string,
8 | }
9 |
10 | declare interface Metadata {
11 | id: string,
12 | cover: ImageInfo,
13 | title: string,
14 | author: string,
15 | images: ImageInfo[],
16 | output: string,
17 | creator: string,
18 | volume: string,
19 | publisher: string,
20 | description: string,
21 | date: string,
22 | }
--------------------------------------------------------------------------------
/src/env.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 |
3 | declare namespace NodeJS {
4 | interface ProcessEnv {
5 | NODE_ENV: string;
6 | VUE_ROUTER_MODE: 'hash' | 'history' | 'abstract' | undefined;
7 | VUE_ROUTER_BASE: string | undefined;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/layouts/MainLayout.vue:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
21 |
22 |
23 |
31 |
32 |
36 |
42 | 已完成 {{ progress }}
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/src/pages/index.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | page
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/quasar.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 |
3 | // Forces TS to apply `@quasar/app-vite` augmentations of `quasar` package
4 | // Removing this would break `quasar/wrappers` imports as those typings are declared
5 | // into `@quasar/app-vite`
6 | // As a side effect, since `@quasar/app-vite` reference `quasar` to augment it,
7 | // this declaration also apply `quasar` own
8 | // augmentations (eg. adds `$q` into Vue component context)
9 | ///
10 |
--------------------------------------------------------------------------------
/src/router/index.ts:
--------------------------------------------------------------------------------
1 | import { route } from 'quasar/wrappers'
2 | import {
3 | createMemoryHistory,
4 | createRouter,
5 | createWebHashHistory,
6 | createWebHistory,
7 | } from 'vue-router'
8 | import { setupLayouts } from 'virtual:generated-layouts'
9 | import generatedRoutes from 'virtual:generated-pages'
10 |
11 | const routes = setupLayouts(generatedRoutes)
12 | routes.push({
13 | path: '/:catchAll(.*)*',
14 | redirect: '/',
15 | })
16 |
17 | export default route(function (/* { store, ssrContext } */) {
18 | const routerMode = process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory
19 | const createHistory = process.env.SERVER
20 | ? createMemoryHistory
21 | : routerMode
22 |
23 | return createRouter({
24 | scrollBehavior: () => ({ left: 0, top: 0 }),
25 | routes,
26 | history: createHistory(process.env.VUE_ROUTER_BASE),
27 | })
28 | })
29 |
--------------------------------------------------------------------------------
/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 |
3 | ///
4 |
5 | // Mocks all files ending in `.vue` showing them as plain Vue instances
6 | declare module '*.vue' {
7 | import type { DefineComponent } from 'vue';
8 | const component: DefineComponent<{}, {}, any>;
9 | export default component;
10 | }
11 |
--------------------------------------------------------------------------------
/src/ssg-flag.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | /* prettier-ignore */
3 | // @ts-nocheck
4 | // THIS FEATURE-FLAG FILE IS AUTOGENERATED,
5 | // REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING
6 | import 'quasar/dist/types/feature-flag';
7 |
8 | declare module 'quasar/dist/types/feature-flag' {
9 | interface QuasarFeatureFlags {
10 | ssr: true;
11 | ssg: true;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/ssg.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | /* prettier-ignore */
3 | // @ts-nocheck
4 |
5 | import 'quasar-app-extension-ssg/types/vite/quasar-wrappers';
6 |
--------------------------------------------------------------------------------
/src/stores/index.ts:
--------------------------------------------------------------------------------
1 | import { store } from 'quasar/wrappers'
2 | import { createPinia } from 'pinia'
3 | import type { Router } from 'vue-router'
4 | /*
5 | * When adding new properties to stores, you should also
6 | * extend the `PiniaCustomProperties` interface.
7 | * @see https://pinia.vuejs.org/core-concepts/plugins.html#typing-new-store-properties
8 | */
9 | declare module 'pinia' {
10 | export interface PiniaCustomProperties {
11 | readonly router: Router
12 | }
13 | }
14 |
15 | /*
16 | * If not building with SSR mode, you can
17 | * directly export the Store instantiation;
18 | *
19 | * The function below can be async too; either use
20 | * async/await or return a Promise which resolves
21 | * with the Store instance.
22 | */
23 |
24 | export default store(() => {
25 | const pinia = createPinia()
26 |
27 | // You can add Pinia plugins here
28 | // pinia.use(SomePiniaPlugin)
29 | // const cookies = process.env.SERVER ? Cookies.parseSSR(ssrContext) : Cookies
30 | // pinia.use(
31 | // cretaeCookiePersisted(cookies, {
32 | // cookiesOptions: {
33 | // expires: 15,
34 | // sameSite: 'Strict',
35 | // },
36 | // })
37 | // )
38 | // pinia.use(createLSPersisted(LocalStorage))
39 |
40 | return pinia
41 | })
42 |
--------------------------------------------------------------------------------
/src/stores/store-flag.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // THIS FEATURE-FLAG FILE IS AUTOGENERATED,
3 | // REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING
4 | import "quasar/dist/types/feature-flag";
5 |
6 | declare module "quasar/dist/types/feature-flag" {
7 | interface QuasarFeatureFlags {
8 | store: true;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | import { str_random } from '@taiyuuki/utils'
2 |
3 | export function getRandomName(fileName?: string) {
4 | if (fileName) {
5 | return str_random(12) + fileName.substring(fileName.lastIndexOf('.'))
6 | }
7 | return str_random(12)
8 | }
9 |
10 | export function getFileName(path: string) {
11 | return path.substring(path.lastIndexOf('\\') + 1)
12 | }
13 |
14 | export function getFileExt(filename: string) {
15 | return filename.substring(filename.lastIndexOf('.') + 1)
16 | }
17 |
18 | export function ensureNoExt(filename: string) {
19 | return filename.substring(0, filename.lastIndexOf('.'))
20 | }
21 |
22 | export function getMinetype(filename: string) {
23 | const imageExt = filename.substring(filename.lastIndexOf('.'))
24 | let imageType = ''
25 | imageType = imageExt === '.svg' ? 'image/svg+xml' : imageType
26 | imageType = imageExt === '.png' ? 'image/png' : imageType
27 | imageType
28 | = imageExt === '.jpg' || imageExt === '.jpeg' ? 'image/jpeg' : imageType
29 | imageType = imageExt === '.gif' ? 'image/gif' : imageType
30 | imageType
31 | = imageExt === '.tif' || imageExt === '.tiff' ? 'image/tiff' : imageType
32 | return imageType
33 | }
34 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@quasar/app-vite/tsconfig-preset",
3 | "compilerOptions": {
4 | "baseUrl": "./",
5 | "types": [
6 | "vite-plugin-pages/client",
7 | "vite-plugin-vue-layouts/client",
8 | "node"
9 | ],
10 | "paths": {
11 | "@/*": [
12 | "src/*"
13 | ],
14 | "src/*": [
15 | "src/*"
16 | ]
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/unocss.config.ts:
--------------------------------------------------------------------------------
1 | import {
2 | defineConfig,
3 | presetUno,
4 | presetAttributify,
5 | presetIcons,
6 | } from 'unocss'
7 | import { presetTaiyuuki } from '@taiyuuki/unocss-preset'
8 |
9 | export default defineConfig({
10 | presets: [
11 | presetAttributify({}),
12 | presetUno(),
13 | presetIcons(),
14 | presetTaiyuuki(),
15 | ],
16 | shortcuts: [],
17 | variants: [],
18 | })
19 |
--------------------------------------------------------------------------------