├── .gitignore ├── README.md ├── app.tmpl.go ├── frontend ├── dist │ └── .gitkeep ├── index.tmpl.html ├── package-lock.tmpl.json ├── package.tmpl.json ├── src │ ├── App.vue │ ├── assets │ │ ├── fonts │ │ │ ├── OFL.txt │ │ │ └── nunito-v16-latin-regular.woff2 │ │ └── images │ │ │ ├── vue.svg │ │ │ └── wails.svg │ ├── components │ │ └── Home.vue │ ├── env.d.ts │ └── main.ts ├── tsconfig.json └── vite.config.ts ├── go.mod.tmpl ├── go.sum ├── main.tmpl.go ├── template.json └── wails.tmpl.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Editor directories and files 2 | .idea 3 | .vscode 4 | *.suo 5 | *.ntvs* 6 | *.njsproj 7 | *.sln 8 | *.sw* 9 | 10 | # Misc 11 | .DS_Store 12 | node_modules/ 13 | dist/ 14 | dist-ssr/ 15 | 16 | # Local files 17 | *.local 18 | 19 | # Log files 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* 23 | 24 | # Binaries for programs and plugins 25 | *.exe 26 | *.exe.manifest 27 | *.exe~ 28 | *.dll 29 | *.so 30 | *.dylib 31 | 32 | # Test binary, built with `go test -c` 33 | *.test 34 | 35 | # Output of the go coverage tool, specifically when used with LiteIDE 36 | *.out 37 | 38 | # Dependency directories (remove the comment below to include it) 39 | # vendor/ 40 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Wails + Vue 3 Typescript 2 | 3 | ## ARCHIVED NOTICE 4 | 5 | This Wails template has been archived and is no longer maintained. I intend to develop a new template in the future. 6 | 7 | ## About 8 | 9 | This is a Wails template project with Vue 3 and TypeScript, using Vite for 10 | asset bundling. It comes with the bare minimum, and can be extended by following 11 | the guides in this README. 12 | 13 | If you would like a more feature packed version that includes all features 14 | documented below already added, please check out my 15 | [feature packed Vite + Vue3 TypeScript template](https://github.com/codydbentley/wails-vite-vue-the-works) 16 | 17 | ## Live Development 18 | 19 | To run in live development mode, run `wails dev` in the project directory. In another terminal, go into the `frontend` 20 | directory and run `npm run dev`. Navigate to http://localhost:34115 21 | in your browser to connect to your application. 22 | 23 | Note: Typechecking is disabled. If you want to do type checking, use `npm run type-check` 24 | 25 | ## Extending Features 26 | 27 | This template does not ship with things like routing, vuex, or sass. 28 | To add any of these features, simply follow the instructions below. Please 29 | note that all commands should be run in the `frontend` directory. 30 | 31 | ### Sass 32 | 33 | Installation: 34 | ```shell 35 | $ npm install --save-dev sass 36 | ``` 37 | 38 | Usage: 39 | 40 | You can now add Sass to your single file component 41 | styling like this: 42 | ```html 43 | 46 | ``` 47 | 48 | ### ESLint + Prettier 49 | 50 | Installation: 51 | ```shell 52 | $ npm install --save-dev eslint prettier eslint-plugin-vue eslint-config-prettier @vue/eslint-config-typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin 53 | $ touch .eslintrc && touch .prettierrc 54 | ``` 55 | 56 | Usage: `eslintrc` 57 | ```json 58 | { 59 | "extends": [ 60 | "plugin:vue/vue3-essential", 61 | "eslint:recommended", 62 | "prettier", 63 | "@vue/typescript/recommended" 64 | ], 65 | "rules": { 66 | // override/add rules settings here, such as: 67 | // "vue/no-unused-vars": "error" 68 | } 69 | } 70 | ``` 71 | 72 | Usage: `.prettierrc` 73 | ```json 74 | { 75 | "semi": false, 76 | "tabWidth": 2, 77 | "useTabs": false, 78 | "printWidth": 120, 79 | "endOfLine": "auto", 80 | "singleQuote": true, 81 | "trailingComma": "all", 82 | "bracketSpacing": true, 83 | "arrowParens": "always" 84 | } 85 | ``` 86 | 87 | ### Vuex 88 | 89 | Installation: 90 | ```shell 91 | $ npm install --save vuex@next 92 | $ touch src/store.ts 93 | ``` 94 | 95 | Usage: `src/store.ts` 96 | ```ts 97 | import { InjectionKey } from 'vue' 98 | import { createStore, Store, useStore as baseUseStore } from 'vuex' 99 | 100 | // define your typings for the store state 101 | export interface State { 102 | count: number 103 | } 104 | 105 | // define injection key 106 | export const key: InjectionKey> = Symbol() 107 | 108 | export const store = createStore({ 109 | state() { 110 | return { 111 | count: 0 112 | } 113 | }, 114 | mutations: { 115 | increment(state) { 116 | state.count++ 117 | } 118 | } 119 | }) 120 | 121 | export function useStore() { 122 | return baseUseStore(key) 123 | } 124 | ``` 125 | 126 | Usage: `src/main.ts` 127 | ```ts 128 | import { createApp } from 'vue' 129 | import App from './App.vue' 130 | import { store, key } from './store' 131 | 132 | createApp(App).use(store, key).mount('#app') 133 | ``` 134 | 135 | Usage: `src/components/Home.vue` 136 | ```ts 137 | import { useStore } from '../store' 138 | const store = useStore() 139 | const increment = () => store.commit('increment') 140 | ``` 141 | 142 | ### Vue Router 143 | 144 | Installation: 145 | ```shell 146 | $ npm install --save vue-router@4 147 | $ touch src/router.ts 148 | ``` 149 | 150 | Usage: `src/router.ts` 151 | ```ts 152 | import { createRouter, createWebHashHistory } from 'vue-router' 153 | import Home from './components/Home.vue' 154 | 155 | const routes = [ 156 | { 157 | path: '/', 158 | name: 'Home', 159 | component: Home, 160 | } 161 | ] 162 | 163 | const router = createRouter({ 164 | history: createWebHashHistory(), 165 | routes, 166 | }) 167 | 168 | export default router 169 | ``` 170 | 171 | Usage: `src/main.ts` 172 | ```ts 173 | import { createApp } from 'vue' 174 | import App from './App.vue' 175 | import router from './router' 176 | 177 | createApp(App).use(router).mount('#app') 178 | ``` 179 | 180 | Usage: `src/App.vue` 181 | ```html 182 | 186 | ``` 187 | 188 | ## Building 189 | 190 | To build this project in debug mode, use `wails build`. For production, use `wails build -production`. 191 | To generate a platform native package, add the `-package` flag. 192 | 193 | ## Known Issues 194 | 195 | - When making changes to the frontend, the browser reload will often happen too fast, causes issues. A refresh will fix the page. 196 | - Typechecking is turned off due to Wails depending on the frontend to build before it will compile the backend and generate bindings. 197 | - If you find any other problems, please create an issue. 198 | -------------------------------------------------------------------------------- /app.tmpl.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "fmt" 6 | ) 7 | 8 | // App struct 9 | type App struct { 10 | ctx context.Context 11 | } 12 | 13 | // NewApp creates a new App application struct 14 | func NewApp() *App { 15 | return &App{} 16 | } 17 | 18 | // startup is called at application startup 19 | func (a *App) startup(ctx context.Context) { 20 | // Perform your setup here 21 | a.ctx = ctx 22 | } 23 | 24 | // domReady is called after the front-end dom has been loaded 25 | func (a App) domReady(ctx context.Context) { 26 | // Add your action here 27 | } 28 | 29 | // shutdown is called at application termination 30 | func (a *App) shutdown(ctx context.Context) { 31 | // Perform your teardown here 32 | } 33 | 34 | // Greet returns a greeting for the given name 35 | func (a *App) Greet(name string) string { 36 | return fmt.Sprintf("Hello %s!", name) 37 | } 38 | -------------------------------------------------------------------------------- /frontend/dist/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sircodemane/wails-vite-vue-ts/d26e6849685ff8ae6721939730f733ec121deac2/frontend/dist/.gitkeep -------------------------------------------------------------------------------- /frontend/index.tmpl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{.ProjectName}} 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /frontend/package-lock.tmpl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "{{.ProjectName}}", 3 | "version": "0.1.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/helper-validator-identifier": { 8 | "version": "7.15.7", 9 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", 10 | "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", 11 | "dev": true 12 | }, 13 | "@babel/parser": { 14 | "version": "7.15.7", 15 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz", 16 | "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==" 17 | }, 18 | "@babel/types": { 19 | "version": "7.15.6", 20 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", 21 | "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", 22 | "dev": true, 23 | "requires": { 24 | "@babel/helper-validator-identifier": "^7.14.9", 25 | "to-fast-properties": "^2.0.0" 26 | } 27 | }, 28 | "@emmetio/abbreviation": { 29 | "version": "2.2.2", 30 | "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.2.tgz", 31 | "integrity": "sha512-TtE/dBnkTCct8+LntkqVrwqQao6EnPAs1YN3cUgxOxTaBlesBCY37ROUAVZrRlG64GNnVShdl/b70RfAI3w5lw==", 32 | "dev": true, 33 | "requires": { 34 | "@emmetio/scanner": "^1.0.0" 35 | } 36 | }, 37 | "@emmetio/css-abbreviation": { 38 | "version": "2.1.4", 39 | "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.4.tgz", 40 | "integrity": "sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==", 41 | "dev": true, 42 | "requires": { 43 | "@emmetio/scanner": "^1.0.0" 44 | } 45 | }, 46 | "@emmetio/scanner": { 47 | "version": "1.0.0", 48 | "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.0.tgz", 49 | "integrity": "sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==", 50 | "dev": true 51 | }, 52 | "@vitejs/plugin-vue": { 53 | "version": "1.9.2", 54 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-1.9.2.tgz", 55 | "integrity": "sha512-QnUQJvGmY+YT9xTidLcjr6NAjKWNdSuul1M+BZ6uwTQaO5vpAY9USBncXESATk742dYMZGJenegJgeJhG/HMNQ==", 56 | "dev": true 57 | }, 58 | "@volar/code-gen": { 59 | "version": "0.27.24", 60 | "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.27.24.tgz", 61 | "integrity": "sha512-s4j/QqOZUW03PeD6LmVYI00Q1C3CfJEOePDOQwDvCTUov4lFk0iSBtFyYhjlLyQ1pdtV1+TDTErkj2aMQtc4PA==", 62 | "dev": true, 63 | "requires": { 64 | "@volar/shared": "^0.27.24", 65 | "@volar/source-map": "^0.27.24" 66 | } 67 | }, 68 | "@volar/html2pug": { 69 | "version": "0.27.13", 70 | "resolved": "https://registry.npmjs.org/@volar/html2pug/-/html2pug-0.27.13.tgz", 71 | "integrity": "sha512-3NYgNA5F3PDsKbbpOrVdGy2S7ZYmZIbFmbp1A/27DDzjj/uIC9Pj7HXVvbYOzi8HcOxUPt0BMrh4TVzBUaCFww==", 72 | "dev": true, 73 | "requires": { 74 | "domelementtype": "^2.2.0", 75 | "domhandler": "^4.2.0", 76 | "htmlparser2": "^6.1.0", 77 | "pug": "^3.0.2" 78 | } 79 | }, 80 | "@volar/shared": { 81 | "version": "0.27.24", 82 | "resolved": "https://registry.npmjs.org/@volar/shared/-/shared-0.27.24.tgz", 83 | "integrity": "sha512-Mi8a4GQaiorfb+o4EqOXDZm9E/uBJXgScFgF+NhtcMBOUKHNMKQyLI7YRGumtyJTTdaX7nSDJjGGTkv23tcOtQ==", 84 | "dev": true, 85 | "requires": { 86 | "upath": "^2.0.1", 87 | "vscode-jsonrpc": "^8.0.0-next.2", 88 | "vscode-uri": "^3.0.2" 89 | } 90 | }, 91 | "@volar/source-map": { 92 | "version": "0.27.24", 93 | "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.27.24.tgz", 94 | "integrity": "sha512-2I5a7cXqekZ66D6lHep7ttJgvVVtPEBUIe1hnpcGbnXWNA2ya6f6jKNNyTmrXQyfkh32IEuaUd4kocR+3AKMag==", 95 | "dev": true, 96 | "requires": { 97 | "@volar/shared": "^0.27.24" 98 | } 99 | }, 100 | "@volar/transforms": { 101 | "version": "0.27.24", 102 | "resolved": "https://registry.npmjs.org/@volar/transforms/-/transforms-0.27.24.tgz", 103 | "integrity": "sha512-sOHi1ZSapFlxn7yPl4MO5TXd9aWC0BVq2CgXAJ2EESb+ddh2uJbGQgLLNocX+MDh419cUuuFT2QAJpuWHhJcng==", 104 | "dev": true, 105 | "requires": { 106 | "@volar/shared": "^0.27.24", 107 | "vscode-languageserver": "^8.0.0-next.2" 108 | } 109 | }, 110 | "@vscode/emmet-helper": { 111 | "version": "2.7.0", 112 | "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.7.0.tgz", 113 | "integrity": "sha512-LL7MoKNLUQASacQROO7hBdx5IAxsEnA0UdJFd9xXyf3sBQgz8NE3QEfo3IezE7uin8W2fkG2+EXMst3oqK6+KQ==", 114 | "dev": true, 115 | "requires": { 116 | "emmet": "^2.3.0", 117 | "jsonc-parser": "^2.3.0", 118 | "vscode-languageserver-textdocument": "^1.0.1", 119 | "vscode-languageserver-types": "^3.15.1", 120 | "vscode-nls": "^5.0.0", 121 | "vscode-uri": "^2.1.2" 122 | }, 123 | "dependencies": { 124 | "vscode-languageserver-types": { 125 | "version": "3.16.0", 126 | "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", 127 | "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", 128 | "dev": true 129 | }, 130 | "vscode-uri": { 131 | "version": "2.1.2", 132 | "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", 133 | "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", 134 | "dev": true 135 | } 136 | } 137 | }, 138 | "@vue/compiler-core": { 139 | "version": "3.2.19", 140 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.19.tgz", 141 | "integrity": "sha512-8dOPX0YOtaXol0Zf2cfLQ4NU/yHYl2H7DCKsLEZ7gdvPK6ZSEwGLJ7IdghhY2YEshEpC5RB9QKdC5I07z8Dtjg==", 142 | "requires": { 143 | "@babel/parser": "^7.15.0", 144 | "@vue/shared": "3.2.19", 145 | "estree-walker": "^2.0.2", 146 | "source-map": "^0.6.1" 147 | } 148 | }, 149 | "@vue/compiler-dom": { 150 | "version": "3.2.19", 151 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.19.tgz", 152 | "integrity": "sha512-WzQoE8rfkFjPtIioc7SSgTsnz9g2oG61DU8KHnzPrRS7fW/lji6H2uCYJfp4Z6kZE8GjnHc1Ljwl3/gxDes0cw==", 153 | "requires": { 154 | "@vue/compiler-core": "3.2.19", 155 | "@vue/shared": "3.2.19" 156 | } 157 | }, 158 | "@vue/compiler-sfc": { 159 | "version": "3.2.19", 160 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.19.tgz", 161 | "integrity": "sha512-pLlbgkO1UHTO02MSpa/sFOXUwIDxSMiKZ1ozE5n71CY4DM+YmI+G3gT/ZHZ46WBId7f3VTF/D8pGwMygcQbrQA==", 162 | "requires": { 163 | "@babel/parser": "^7.15.0", 164 | "@vue/compiler-core": "3.2.19", 165 | "@vue/compiler-dom": "3.2.19", 166 | "@vue/compiler-ssr": "3.2.19", 167 | "@vue/ref-transform": "3.2.19", 168 | "@vue/shared": "3.2.19", 169 | "estree-walker": "^2.0.2", 170 | "magic-string": "^0.25.7", 171 | "postcss": "^8.1.10", 172 | "source-map": "^0.6.1" 173 | } 174 | }, 175 | "@vue/compiler-ssr": { 176 | "version": "3.2.19", 177 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.19.tgz", 178 | "integrity": "sha512-oLon0Cn3O7WEYzzmzZavGoqXH+199LT+smdjBT3Uf3UX4HwDNuBFCmvL0TsqV9SQnIgKvBRbQ7lhbpnd4lqM3w==", 179 | "requires": { 180 | "@vue/compiler-dom": "3.2.19", 181 | "@vue/shared": "3.2.19" 182 | } 183 | }, 184 | "@vue/reactivity": { 185 | "version": "3.2.19", 186 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.19.tgz", 187 | "integrity": "sha512-FtachoYs2SnyrWup5UikP54xDX6ZJ1s5VgHcJp4rkGoutU3Ry61jhs+nCX7J64zjX992Mh9gGUC0LqTs8q9vCA==", 188 | "requires": { 189 | "@vue/shared": "3.2.19" 190 | } 191 | }, 192 | "@vue/ref-transform": { 193 | "version": "3.2.19", 194 | "resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.19.tgz", 195 | "integrity": "sha512-03wwUnoIAeKti5IGGx6Vk/HEBJ+zUcm5wrUM3+PQsGf7IYnXTbeIfHHpx4HeSeWhnLAjqZjADQwW8uA4rBmVbg==", 196 | "requires": { 197 | "@babel/parser": "^7.15.0", 198 | "@vue/compiler-core": "3.2.19", 199 | "@vue/shared": "3.2.19", 200 | "estree-walker": "^2.0.2", 201 | "magic-string": "^0.25.7" 202 | } 203 | }, 204 | "@vue/runtime-core": { 205 | "version": "3.2.19", 206 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.19.tgz", 207 | "integrity": "sha512-qArZSWKxWsgKfxk9BelZ32nY0MZ31CAW2kUUyVJyxh4cTfHaXGbjiQB5JgsvKc49ROMNffv9t3/qjasQqAH+RQ==", 208 | "requires": { 209 | "@vue/reactivity": "3.2.19", 210 | "@vue/shared": "3.2.19" 211 | } 212 | }, 213 | "@vue/runtime-dom": { 214 | "version": "3.2.19", 215 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.19.tgz", 216 | "integrity": "sha512-hIRboxXwafeHhbZEkZYNV0MiJXPNf4fP0X6hM2TJb0vssz8BKhD9cF92BkRgZztTQevecbhk0gu4uAPJ3dxL9A==", 217 | "requires": { 218 | "@vue/runtime-core": "3.2.19", 219 | "@vue/shared": "3.2.19", 220 | "csstype": "^2.6.8" 221 | } 222 | }, 223 | "@vue/server-renderer": { 224 | "version": "3.2.19", 225 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.19.tgz", 226 | "integrity": "sha512-A9FNT7fgQJXItwdzWREntAgWKVtKYuXHBKGev/H4+ByTu8vB7gQXGcim01QxaJshdNg4dYuH2tEBZXCNCNx+/w==", 227 | "requires": { 228 | "@vue/compiler-ssr": "3.2.19", 229 | "@vue/shared": "3.2.19" 230 | } 231 | }, 232 | "@vue/shared": { 233 | "version": "3.2.19", 234 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.19.tgz", 235 | "integrity": "sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==" 236 | }, 237 | "acorn": { 238 | "version": "7.4.1", 239 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 240 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 241 | "dev": true 242 | }, 243 | "asap": { 244 | "version": "2.0.6", 245 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", 246 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", 247 | "dev": true 248 | }, 249 | "assert-never": { 250 | "version": "1.2.1", 251 | "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", 252 | "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", 253 | "dev": true 254 | }, 255 | "babel-walk": { 256 | "version": "3.0.0-canary-5", 257 | "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", 258 | "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", 259 | "dev": true, 260 | "requires": { 261 | "@babel/types": "^7.9.6" 262 | } 263 | }, 264 | "call-bind": { 265 | "version": "1.0.2", 266 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 267 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 268 | "dev": true, 269 | "requires": { 270 | "function-bind": "^1.1.1", 271 | "get-intrinsic": "^1.0.2" 272 | } 273 | }, 274 | "character-parser": { 275 | "version": "2.2.0", 276 | "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", 277 | "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", 278 | "dev": true, 279 | "requires": { 280 | "is-regex": "^1.0.3" 281 | } 282 | }, 283 | "constantinople": { 284 | "version": "4.0.1", 285 | "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", 286 | "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", 287 | "dev": true, 288 | "requires": { 289 | "@babel/parser": "^7.6.0", 290 | "@babel/types": "^7.6.1" 291 | } 292 | }, 293 | "csstype": { 294 | "version": "2.6.18", 295 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz", 296 | "integrity": "sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==" 297 | }, 298 | "doctypes": { 299 | "version": "1.1.0", 300 | "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", 301 | "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", 302 | "dev": true 303 | }, 304 | "dom-serializer": { 305 | "version": "1.3.2", 306 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", 307 | "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", 308 | "dev": true, 309 | "requires": { 310 | "domelementtype": "^2.0.1", 311 | "domhandler": "^4.2.0", 312 | "entities": "^2.0.0" 313 | } 314 | }, 315 | "domelementtype": { 316 | "version": "2.2.0", 317 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", 318 | "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", 319 | "dev": true 320 | }, 321 | "domhandler": { 322 | "version": "4.2.2", 323 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", 324 | "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", 325 | "dev": true, 326 | "requires": { 327 | "domelementtype": "^2.2.0" 328 | } 329 | }, 330 | "domutils": { 331 | "version": "2.8.0", 332 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", 333 | "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", 334 | "dev": true, 335 | "requires": { 336 | "dom-serializer": "^1.0.1", 337 | "domelementtype": "^2.2.0", 338 | "domhandler": "^4.2.0" 339 | } 340 | }, 341 | "emmet": { 342 | "version": "2.3.4", 343 | "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.3.4.tgz", 344 | "integrity": "sha512-3IqSwmO+N2ZGeuhDyhV/TIOJFUbkChi53bcasSNRE7Yd+4eorbbYz4e53TpMECt38NtYkZNupQCZRlwdAYA42A==", 345 | "dev": true, 346 | "requires": { 347 | "@emmetio/abbreviation": "^2.2.2", 348 | "@emmetio/css-abbreviation": "^2.1.4" 349 | } 350 | }, 351 | "entities": { 352 | "version": "2.2.0", 353 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 354 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 355 | "dev": true 356 | }, 357 | "esbuild": { 358 | "version": "0.13.3", 359 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.3.tgz", 360 | "integrity": "sha512-98xovMLKnyhv3gcReUuAEi5Ig1rK6SIgvsJuBIcfwzqGSEHsV8UJjMlmkhHoHMf9XZybMpE9Zax8AA8f7i2hlQ==", 361 | "dev": true, 362 | "requires": { 363 | "esbuild-android-arm64": "0.13.3", 364 | "esbuild-darwin-64": "0.13.3", 365 | "esbuild-darwin-arm64": "0.13.3", 366 | "esbuild-freebsd-64": "0.13.3", 367 | "esbuild-freebsd-arm64": "0.13.3", 368 | "esbuild-linux-32": "0.13.3", 369 | "esbuild-linux-64": "0.13.3", 370 | "esbuild-linux-arm": "0.13.3", 371 | "esbuild-linux-arm64": "0.13.3", 372 | "esbuild-linux-mips64le": "0.13.3", 373 | "esbuild-linux-ppc64le": "0.13.3", 374 | "esbuild-openbsd-64": "0.13.3", 375 | "esbuild-sunos-64": "0.13.3", 376 | "esbuild-windows-32": "0.13.3", 377 | "esbuild-windows-64": "0.13.3", 378 | "esbuild-windows-arm64": "0.13.3" 379 | } 380 | }, 381 | "esbuild-android-arm64": { 382 | "version": "0.13.3", 383 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.3.tgz", 384 | "integrity": "sha512-jc9E8vGTHkzb0Vwl74H8liANV9BWsqtzLHaKvcsRgf1M+aVCBSF0gUheduAKfDsbDMT0judeMLhwBP34EUesTA==", 385 | "dev": true, 386 | "optional": true 387 | }, 388 | "esbuild-darwin-64": { 389 | "version": "0.13.3", 390 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.3.tgz", 391 | "integrity": "sha512-8bG3Zq+ZNuLlIJebOO2+weI7P2LVf33sOzaUfHj8MuJ+1Ixe4KtQxfYp7qhFnP6xP2ToJaYHxGUfLeiUCEz9hw==", 392 | "dev": true, 393 | "optional": true 394 | }, 395 | "esbuild-darwin-arm64": { 396 | "version": "0.13.3", 397 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.3.tgz", 398 | "integrity": "sha512-5E81eImYtTgh8pY7Gq4WQHhWkR/LvYadUXmuYeZBiP+3ADZJZcG60UFceZrjqNPaFOWKr/xmh4aNocwagEubcA==", 399 | "dev": true, 400 | "optional": true 401 | }, 402 | "esbuild-freebsd-64": { 403 | "version": "0.13.3", 404 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.3.tgz", 405 | "integrity": "sha512-ou+f91KkTGexi8HvF/BdtsITL6plbciQfZGys7QX6/QEwyE96PmL5KnU6ZQwoU7E99Ts6Sc9bUDq8HXJubKtBA==", 406 | "dev": true, 407 | "optional": true 408 | }, 409 | "esbuild-freebsd-arm64": { 410 | "version": "0.13.3", 411 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.3.tgz", 412 | "integrity": "sha512-F1zV7nySjHswJuvIgjkiG5liZ63MeazDGXGKViTCeegjZ71sAhOChcaGhKcu6vq9+vqZxlfEi1fmXlx6Pc3coQ==", 413 | "dev": true, 414 | "optional": true 415 | }, 416 | "esbuild-linux-32": { 417 | "version": "0.13.3", 418 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.3.tgz", 419 | "integrity": "sha512-mHHc2v6uLrHH4zaaq5RB/5IWzgimEJ1HGldzf1qtGI513KZWfH0HRRQ8p1di4notJgBn7tDzWQ1f34ZHy69viQ==", 420 | "dev": true, 421 | "optional": true 422 | }, 423 | "esbuild-linux-64": { 424 | "version": "0.13.3", 425 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.3.tgz", 426 | "integrity": "sha512-FJ1De2O89mrOuqtaEXu41qIYJU6R41F+OA6vheNwcAQcX8fu0aiA13FJeLABq29BYJuTVgRj3cyC8q+tz19/dQ==", 427 | "dev": true, 428 | "optional": true 429 | }, 430 | "esbuild-linux-arm": { 431 | "version": "0.13.3", 432 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.3.tgz", 433 | "integrity": "sha512-9BJNRtLwBh3OP22cln9g3AJdbAQUcjRHqA4BScx9k4RZpGqPokFr548zpeplxWhcwrIjT8qPebwH9CrRVy8Bsw==", 434 | "dev": true, 435 | "optional": true 436 | }, 437 | "esbuild-linux-arm64": { 438 | "version": "0.13.3", 439 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.3.tgz", 440 | "integrity": "sha512-Cauhr45KSo+wRUojs+1qfycQqQCAXTOvsWvkZ6xmEMAXLAm+f8RQGDQeP8CAf8Yeelnegcn6UNdvzdzLHhWDFg==", 441 | "dev": true, 442 | "optional": true 443 | }, 444 | "esbuild-linux-mips64le": { 445 | "version": "0.13.3", 446 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.3.tgz", 447 | "integrity": "sha512-YVzJUGCncuuLm2boYyVeuMFsak4ZAhdiBwi0xNDZCC8sy+tS6Boe2mzcrD2uubv5JKAUOrpN186S1DtU4WgBgw==", 448 | "dev": true, 449 | "optional": true 450 | }, 451 | "esbuild-linux-ppc64le": { 452 | "version": "0.13.3", 453 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.3.tgz", 454 | "integrity": "sha512-GU6CqqKtJEoyxC2QWHiJtmuOz9wc/jMv8ZloK2WwiGY5yMvAmM3PI103Dj7xcjebNTHBqITTUw/aigY1wx5A3w==", 455 | "dev": true, 456 | "optional": true 457 | }, 458 | "esbuild-openbsd-64": { 459 | "version": "0.13.3", 460 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.3.tgz", 461 | "integrity": "sha512-HVpkgpn4BQt4BPDAjTOpeMub6mzNWw6Y3gaLQJrpbO24pws6ZwYkY24OI3/Uo3LDCbH6856MM81JxECt92OWjA==", 462 | "dev": true, 463 | "optional": true 464 | }, 465 | "esbuild-sunos-64": { 466 | "version": "0.13.3", 467 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.3.tgz", 468 | "integrity": "sha512-XncBVOtnEfUbPV4CaiFBxh38ychnBfwCxuTm9iAqcHzIwkmeNRN5qMzDyfE1jyfJje+Bbt6AvIfz6SdYt8/UEQ==", 469 | "dev": true, 470 | "optional": true 471 | }, 472 | "esbuild-windows-32": { 473 | "version": "0.13.3", 474 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.3.tgz", 475 | "integrity": "sha512-ZlgDz7d1nk8wQACi+z8IDzNZVUlN9iprAme+1YSTsfFDlkyI8jeaGWPk9EQFNY7rJzsLVYm6eZ2mhPioc7uT5A==", 476 | "dev": true, 477 | "optional": true 478 | }, 479 | "esbuild-windows-64": { 480 | "version": "0.13.3", 481 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.3.tgz", 482 | "integrity": "sha512-YX7KvRez3TR+GudlQm9tND/ssj2FsF9vb8ZWzAoZOLxpPzE3y+3SFJNrfDzzQKPzJ0Pnh9KBP4gsaMwJjKHDhw==", 483 | "dev": true, 484 | "optional": true 485 | }, 486 | "esbuild-windows-arm64": { 487 | "version": "0.13.3", 488 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.3.tgz", 489 | "integrity": "sha512-nP7H0Y2a6OJd3Qi1Q8sehhyP4x4JoXK4S5y6FzH2vgaJgiyEurzFxjUufGdMaw+RxtxiwD/uRndUgwaZ2JD8lg==", 490 | "dev": true, 491 | "optional": true 492 | }, 493 | "estree-walker": { 494 | "version": "2.0.2", 495 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 496 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 497 | }, 498 | "fsevents": { 499 | "version": "2.3.2", 500 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 501 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 502 | "dev": true, 503 | "optional": true 504 | }, 505 | "function-bind": { 506 | "version": "1.1.1", 507 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 508 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 509 | "dev": true 510 | }, 511 | "get-intrinsic": { 512 | "version": "1.1.1", 513 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 514 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 515 | "dev": true, 516 | "requires": { 517 | "function-bind": "^1.1.1", 518 | "has": "^1.0.3", 519 | "has-symbols": "^1.0.1" 520 | } 521 | }, 522 | "has": { 523 | "version": "1.0.3", 524 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 525 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 526 | "dev": true, 527 | "requires": { 528 | "function-bind": "^1.1.1" 529 | } 530 | }, 531 | "has-symbols": { 532 | "version": "1.0.2", 533 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 534 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 535 | "dev": true 536 | }, 537 | "has-tostringtag": { 538 | "version": "1.0.0", 539 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 540 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 541 | "dev": true, 542 | "requires": { 543 | "has-symbols": "^1.0.2" 544 | } 545 | }, 546 | "htmlparser2": { 547 | "version": "6.1.0", 548 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", 549 | "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", 550 | "dev": true, 551 | "requires": { 552 | "domelementtype": "^2.0.1", 553 | "domhandler": "^4.0.0", 554 | "domutils": "^2.5.2", 555 | "entities": "^2.0.0" 556 | } 557 | }, 558 | "is-core-module": { 559 | "version": "2.7.0", 560 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", 561 | "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", 562 | "dev": true, 563 | "requires": { 564 | "has": "^1.0.3" 565 | } 566 | }, 567 | "is-expression": { 568 | "version": "4.0.0", 569 | "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", 570 | "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", 571 | "dev": true, 572 | "requires": { 573 | "acorn": "^7.1.1", 574 | "object-assign": "^4.1.1" 575 | } 576 | }, 577 | "is-promise": { 578 | "version": "2.2.2", 579 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", 580 | "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", 581 | "dev": true 582 | }, 583 | "is-regex": { 584 | "version": "1.1.4", 585 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 586 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 587 | "dev": true, 588 | "requires": { 589 | "call-bind": "^1.0.2", 590 | "has-tostringtag": "^1.0.0" 591 | } 592 | }, 593 | "js-stringify": { 594 | "version": "1.0.2", 595 | "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", 596 | "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", 597 | "dev": true 598 | }, 599 | "jsonc-parser": { 600 | "version": "2.3.1", 601 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", 602 | "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", 603 | "dev": true 604 | }, 605 | "jstransformer": { 606 | "version": "1.0.0", 607 | "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", 608 | "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", 609 | "dev": true, 610 | "requires": { 611 | "is-promise": "^2.0.0", 612 | "promise": "^7.0.1" 613 | } 614 | }, 615 | "lru-cache": { 616 | "version": "6.0.0", 617 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 618 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 619 | "dev": true, 620 | "requires": { 621 | "yallist": "^4.0.0" 622 | } 623 | }, 624 | "magic-string": { 625 | "version": "0.25.7", 626 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", 627 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", 628 | "requires": { 629 | "sourcemap-codec": "^1.4.4" 630 | } 631 | }, 632 | "nanocolors": { 633 | "version": "0.2.12", 634 | "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz", 635 | "integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==" 636 | }, 637 | "nanoid": { 638 | "version": "3.1.28", 639 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz", 640 | "integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==" 641 | }, 642 | "object-assign": { 643 | "version": "4.1.1", 644 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 645 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 646 | "dev": true 647 | }, 648 | "path-parse": { 649 | "version": "1.0.7", 650 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 651 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 652 | "dev": true 653 | }, 654 | "postcss": { 655 | "version": "8.3.8", 656 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz", 657 | "integrity": "sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA==", 658 | "requires": { 659 | "nanocolors": "^0.2.2", 660 | "nanoid": "^3.1.25", 661 | "source-map-js": "^0.6.2" 662 | } 663 | }, 664 | "promise": { 665 | "version": "7.3.1", 666 | "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", 667 | "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", 668 | "dev": true, 669 | "requires": { 670 | "asap": "~2.0.3" 671 | } 672 | }, 673 | "pug": { 674 | "version": "3.0.2", 675 | "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", 676 | "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", 677 | "dev": true, 678 | "requires": { 679 | "pug-code-gen": "^3.0.2", 680 | "pug-filters": "^4.0.0", 681 | "pug-lexer": "^5.0.1", 682 | "pug-linker": "^4.0.0", 683 | "pug-load": "^3.0.0", 684 | "pug-parser": "^6.0.0", 685 | "pug-runtime": "^3.0.1", 686 | "pug-strip-comments": "^2.0.0" 687 | } 688 | }, 689 | "pug-attrs": { 690 | "version": "3.0.0", 691 | "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", 692 | "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", 693 | "dev": true, 694 | "requires": { 695 | "constantinople": "^4.0.1", 696 | "js-stringify": "^1.0.2", 697 | "pug-runtime": "^3.0.0" 698 | } 699 | }, 700 | "pug-code-gen": { 701 | "version": "3.0.2", 702 | "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", 703 | "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", 704 | "dev": true, 705 | "requires": { 706 | "constantinople": "^4.0.1", 707 | "doctypes": "^1.1.0", 708 | "js-stringify": "^1.0.2", 709 | "pug-attrs": "^3.0.0", 710 | "pug-error": "^2.0.0", 711 | "pug-runtime": "^3.0.0", 712 | "void-elements": "^3.1.0", 713 | "with": "^7.0.0" 714 | } 715 | }, 716 | "pug-error": { 717 | "version": "2.0.0", 718 | "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", 719 | "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", 720 | "dev": true 721 | }, 722 | "pug-filters": { 723 | "version": "4.0.0", 724 | "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", 725 | "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", 726 | "dev": true, 727 | "requires": { 728 | "constantinople": "^4.0.1", 729 | "jstransformer": "1.0.0", 730 | "pug-error": "^2.0.0", 731 | "pug-walk": "^2.0.0", 732 | "resolve": "^1.15.1" 733 | } 734 | }, 735 | "pug-lexer": { 736 | "version": "5.0.1", 737 | "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", 738 | "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", 739 | "dev": true, 740 | "requires": { 741 | "character-parser": "^2.2.0", 742 | "is-expression": "^4.0.0", 743 | "pug-error": "^2.0.0" 744 | } 745 | }, 746 | "pug-linker": { 747 | "version": "4.0.0", 748 | "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", 749 | "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", 750 | "dev": true, 751 | "requires": { 752 | "pug-error": "^2.0.0", 753 | "pug-walk": "^2.0.0" 754 | } 755 | }, 756 | "pug-load": { 757 | "version": "3.0.0", 758 | "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", 759 | "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", 760 | "dev": true, 761 | "requires": { 762 | "object-assign": "^4.1.1", 763 | "pug-walk": "^2.0.0" 764 | } 765 | }, 766 | "pug-parser": { 767 | "version": "6.0.0", 768 | "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", 769 | "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", 770 | "dev": true, 771 | "requires": { 772 | "pug-error": "^2.0.0", 773 | "token-stream": "1.0.0" 774 | } 775 | }, 776 | "pug-runtime": { 777 | "version": "3.0.1", 778 | "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", 779 | "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", 780 | "dev": true 781 | }, 782 | "pug-strip-comments": { 783 | "version": "2.0.0", 784 | "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", 785 | "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", 786 | "dev": true, 787 | "requires": { 788 | "pug-error": "^2.0.0" 789 | } 790 | }, 791 | "pug-walk": { 792 | "version": "2.0.0", 793 | "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", 794 | "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", 795 | "dev": true 796 | }, 797 | "request-light": { 798 | "version": "0.5.4", 799 | "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.4.tgz", 800 | "integrity": "sha512-t3566CMweOFlUk7Y1DJMu5OrtpoZEb6aSTsLQVT3wtrIEJ5NhcY9G/Oqxvjllzl4a15zXfFlcr9q40LbLVQJqw==", 801 | "dev": true 802 | }, 803 | "resolve": { 804 | "version": "1.20.0", 805 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 806 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 807 | "dev": true, 808 | "requires": { 809 | "is-core-module": "^2.2.0", 810 | "path-parse": "^1.0.6" 811 | } 812 | }, 813 | "rollup": { 814 | "version": "2.58.0", 815 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.58.0.tgz", 816 | "integrity": "sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==", 817 | "dev": true, 818 | "requires": { 819 | "fsevents": "~2.3.2" 820 | } 821 | }, 822 | "semver": { 823 | "version": "7.3.5", 824 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", 825 | "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", 826 | "dev": true, 827 | "requires": { 828 | "lru-cache": "^6.0.0" 829 | } 830 | }, 831 | "source-map": { 832 | "version": "0.6.1", 833 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 834 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 835 | }, 836 | "source-map-js": { 837 | "version": "0.6.2", 838 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", 839 | "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==" 840 | }, 841 | "sourcemap-codec": { 842 | "version": "1.4.8", 843 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 844 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 845 | }, 846 | "to-fast-properties": { 847 | "version": "2.0.0", 848 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 849 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 850 | "dev": true 851 | }, 852 | "token-stream": { 853 | "version": "1.0.0", 854 | "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", 855 | "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", 856 | "dev": true 857 | }, 858 | "typescript": { 859 | "version": "4.4.3", 860 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", 861 | "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", 862 | "dev": true 863 | }, 864 | "upath": { 865 | "version": "2.0.1", 866 | "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", 867 | "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", 868 | "dev": true 869 | }, 870 | "vite": { 871 | "version": "2.6.2", 872 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.6.2.tgz", 873 | "integrity": "sha512-HSIg9U15LOnbD3CUxX364Pdrm7DUjftuBljowGxvkFHgDZU/SKPqApg9t86MX/Qq1VCO7wS+mGJHlfuTF7c0Sg==", 874 | "dev": true, 875 | "requires": { 876 | "esbuild": "^0.13.2", 877 | "fsevents": "~2.3.2", 878 | "postcss": "^8.3.8", 879 | "resolve": "^1.20.0", 880 | "rollup": "^2.57.0" 881 | } 882 | }, 883 | "void-elements": { 884 | "version": "3.1.0", 885 | "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", 886 | "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", 887 | "dev": true 888 | }, 889 | "vscode-css-languageservice": { 890 | "version": "5.1.7", 891 | "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.1.7.tgz", 892 | "integrity": "sha512-h4oafcZaGFe2VtbNIlkZDmLEP0GQha3E5Ct2YMH4p/p9xYC8yWDNQ5CD+VF3UnSijKPSKmA+oc4cKjhJBowGKw==", 893 | "dev": true, 894 | "requires": { 895 | "vscode-languageserver-textdocument": "^1.0.1", 896 | "vscode-languageserver-types": "^3.16.0", 897 | "vscode-nls": "^5.0.0", 898 | "vscode-uri": "^3.0.2" 899 | }, 900 | "dependencies": { 901 | "vscode-languageserver-types": { 902 | "version": "3.16.0", 903 | "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", 904 | "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", 905 | "dev": true 906 | } 907 | } 908 | }, 909 | "vscode-html-languageservice": { 910 | "version": "4.1.0", 911 | "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.1.0.tgz", 912 | "integrity": "sha512-QQrEKfpfbeglD8Jcai4fQDQ7vOJrN6LyiOs47Y6qAxnhve+ervw1kP2UCt9ohHe/6teNWJDYTGxLDgs5iAvitw==", 913 | "dev": true, 914 | "requires": { 915 | "vscode-languageserver-textdocument": "^1.0.1", 916 | "vscode-languageserver-types": "^3.16.0", 917 | "vscode-nls": "^5.0.0", 918 | "vscode-uri": "^3.0.2" 919 | }, 920 | "dependencies": { 921 | "vscode-languageserver-types": { 922 | "version": "3.16.0", 923 | "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", 924 | "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", 925 | "dev": true 926 | } 927 | } 928 | }, 929 | "vscode-json-languageservice": { 930 | "version": "4.1.8", 931 | "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.8.tgz", 932 | "integrity": "sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==", 933 | "dev": true, 934 | "requires": { 935 | "jsonc-parser": "^3.0.0", 936 | "vscode-languageserver-textdocument": "^1.0.1", 937 | "vscode-languageserver-types": "^3.16.0", 938 | "vscode-nls": "^5.0.0", 939 | "vscode-uri": "^3.0.2" 940 | }, 941 | "dependencies": { 942 | "jsonc-parser": { 943 | "version": "3.0.0", 944 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", 945 | "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", 946 | "dev": true 947 | }, 948 | "vscode-languageserver-types": { 949 | "version": "3.16.0", 950 | "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", 951 | "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", 952 | "dev": true 953 | } 954 | } 955 | }, 956 | "vscode-jsonrpc": { 957 | "version": "8.0.0-next.2", 958 | "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.0-next.2.tgz", 959 | "integrity": "sha512-gxUyTBAjmwGkiHW/UaRScre2s4i98P8M7gnc3VB4DrVQUm3vQ0idi2cN9nbkfcjATx+uEt8C22j+MLN/8UzsJA==", 960 | "dev": true 961 | }, 962 | "vscode-languageserver": { 963 | "version": "8.0.0-next.2", 964 | "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.0-next.2.tgz", 965 | "integrity": "sha512-7qCEXTeGZKkI8BGvlKh0JPXTY7BaWoiwQYKCcGaUgnMs34wt6F/yaKcxoC3XIouBBVyRxiI6Ml/JdztM3XYEaA==", 966 | "dev": true, 967 | "requires": { 968 | "vscode-languageserver-protocol": "3.17.0-next.8" 969 | } 970 | }, 971 | "vscode-languageserver-protocol": { 972 | "version": "3.17.0-next.8", 973 | "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.8.tgz", 974 | "integrity": "sha512-P89vSuJ+FA5JzFmcOoZN13Ig1yd6LsiPOig0O5m5BSGuO/rplQegCd9J0wKpaTy7trf/SYHRoypnbUBdzy14sg==", 975 | "dev": true, 976 | "requires": { 977 | "vscode-jsonrpc": "8.0.0-next.2", 978 | "vscode-languageserver-types": "3.17.0-next.3" 979 | } 980 | }, 981 | "vscode-languageserver-textdocument": { 982 | "version": "1.0.1", 983 | "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz", 984 | "integrity": "sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==", 985 | "dev": true 986 | }, 987 | "vscode-languageserver-types": { 988 | "version": "3.17.0-next.3", 989 | "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.0-next.3.tgz", 990 | "integrity": "sha512-VQcXnhKYxUW6OiRMhG++SzmZYMJwusXknJGd+FfdOnS1yHAo734OHyR0e2eEHDlv0/oWc8RZPgx/VKSKyondVg==", 991 | "dev": true 992 | }, 993 | "vscode-nls": { 994 | "version": "5.0.0", 995 | "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz", 996 | "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==", 997 | "dev": true 998 | }, 999 | "vscode-pug-languageservice": { 1000 | "version": "0.27.24", 1001 | "resolved": "https://registry.npmjs.org/vscode-pug-languageservice/-/vscode-pug-languageservice-0.27.24.tgz", 1002 | "integrity": "sha512-GSvsFB+rPhAD7cBlEKCVNNsFGIaOnp/0zyLw3WpYbXY24vJZafXu1kHvtYaaQXJRnIhqp5EI5p+EqpdI3hTBnw==", 1003 | "dev": true, 1004 | "requires": { 1005 | "@volar/code-gen": "^0.27.24", 1006 | "@volar/shared": "^0.27.24", 1007 | "@volar/source-map": "^0.27.24", 1008 | "@volar/transforms": "^0.27.24", 1009 | "pug-lexer": "^5.0.1", 1010 | "pug-parser": "^6.0.0", 1011 | "vscode-languageserver": "^8.0.0-next.2" 1012 | } 1013 | }, 1014 | "vscode-typescript-languageservice": { 1015 | "version": "0.27.25", 1016 | "resolved": "https://registry.npmjs.org/vscode-typescript-languageservice/-/vscode-typescript-languageservice-0.27.25.tgz", 1017 | "integrity": "sha512-nxpJI9MnF2rn5rKL/032Qrsq3T9DgM3slK5fwZp3suNdo90JG2zFTs3Ola8n62k7+KWu4A775obxyb4wLIW6Gw==", 1018 | "dev": true, 1019 | "requires": { 1020 | "@volar/shared": "^0.27.24", 1021 | "semver": "^7.3.5", 1022 | "upath": "^2.0.1", 1023 | "vscode-languageserver": "^8.0.0-next.2", 1024 | "vscode-languageserver-textdocument": "^1.0.1" 1025 | } 1026 | }, 1027 | "vscode-uri": { 1028 | "version": "3.0.2", 1029 | "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.2.tgz", 1030 | "integrity": "sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==", 1031 | "dev": true 1032 | }, 1033 | "vscode-vue-languageservice": { 1034 | "version": "0.27.27", 1035 | "resolved": "https://registry.npmjs.org/vscode-vue-languageservice/-/vscode-vue-languageservice-0.27.27.tgz", 1036 | "integrity": "sha512-q5vaaTxQpsqr4O2h2A5zXQtK17ZHKdrcjv6gZaItTBcI4rxw6GIHoblYsNXMo+dhBZEmFmyI18iPn+a7RajFEQ==", 1037 | "dev": true, 1038 | "requires": { 1039 | "@volar/code-gen": "^0.27.24", 1040 | "@volar/html2pug": "^0.27.13", 1041 | "@volar/shared": "^0.27.24", 1042 | "@volar/source-map": "^0.27.24", 1043 | "@volar/transforms": "^0.27.24", 1044 | "@vscode/emmet-helper": "^2.7.0", 1045 | "@vue/compiler-dom": "^3.2.19", 1046 | "@vue/reactivity": "^3.2.19", 1047 | "@vue/shared": "^3.2.19", 1048 | "request-light": "^0.5.4", 1049 | "upath": "^2.0.1", 1050 | "vscode-css-languageservice": "^5.1.4", 1051 | "vscode-html-languageservice": "^4.0.7", 1052 | "vscode-json-languageservice": "^4.1.7", 1053 | "vscode-languageserver": "^8.0.0-next.2", 1054 | "vscode-languageserver-textdocument": "^1.0.1", 1055 | "vscode-pug-languageservice": "^0.27.24", 1056 | "vscode-typescript-languageservice": "^0.27.25" 1057 | } 1058 | }, 1059 | "vue": { 1060 | "version": "3.2.19", 1061 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.19.tgz", 1062 | "integrity": "sha512-6KAMdIfAtlK+qohTIUE4urwAv4A3YRuo8uAbByApUmiB0CziGAAPs6qVugN6oHPia8YIafHB/37K0O6KZ7sGmA==", 1063 | "requires": { 1064 | "@vue/compiler-dom": "3.2.19", 1065 | "@vue/compiler-sfc": "3.2.19", 1066 | "@vue/runtime-dom": "3.2.19", 1067 | "@vue/server-renderer": "3.2.19", 1068 | "@vue/shared": "3.2.19" 1069 | } 1070 | }, 1071 | "vue-tsc": { 1072 | "version": "0.3.0", 1073 | "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.3.0.tgz", 1074 | "integrity": "sha512-zaDRZBxwRIz1XjhNP92FqugG71st6BUMnA2EwPeXrAyzbEYVRz6TezNFceYl3QYqqN8CtaxbqUhaQEDj/ntoCA==", 1075 | "dev": true, 1076 | "requires": { 1077 | "vscode-vue-languageservice": "^0.27.0" 1078 | } 1079 | }, 1080 | "with": { 1081 | "version": "7.0.2", 1082 | "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", 1083 | "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", 1084 | "dev": true, 1085 | "requires": { 1086 | "@babel/parser": "^7.9.6", 1087 | "@babel/types": "^7.9.6", 1088 | "assert-never": "^1.2.1", 1089 | "babel-walk": "3.0.0-canary-5" 1090 | } 1091 | }, 1092 | "yallist": { 1093 | "version": "4.0.0", 1094 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1095 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1096 | "dev": true 1097 | } 1098 | } 1099 | } 1100 | -------------------------------------------------------------------------------- /frontend/package.tmpl.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "{{.ProjectName}}", 3 | "version": "0.1.0", 4 | "author": "{{.AuthorName}}", 5 | "private": true, 6 | "scripts": { 7 | "dev": "vite build --watch", 8 | "type-check": "vue-tsc --noEmit", 9 | "build": "vite build" 10 | }, 11 | "dependencies": { 12 | "vue": "^3.2.13" 13 | }, 14 | "devDependencies": { 15 | "@vitejs/plugin-vue": "^1.9.0", 16 | "typescript": "^4.4.3", 17 | "vite": "^2.5.10", 18 | "vue-tsc": "^0.3.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /frontend/src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 49 | -------------------------------------------------------------------------------- /frontend/src/assets/fonts/OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 2016 The Nunito Project Authors (contact@sansoxygen.com), 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /frontend/src/assets/fonts/nunito-v16-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sircodemane/wails-vite-vue-ts/d26e6849685ff8ae6721939730f733ec121deac2/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 -------------------------------------------------------------------------------- /frontend/src/assets/images/vue.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /frontend/src/assets/images/wails.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | 10 | 11 | 13 | 14 | 15 | 17 | 18 | 19 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 44 | 45 | 46 | 47 | 48 | 50 | 51 | 52 | 53 | 54 | 55 | 57 | 58 | 60 | 61 | 63 | 64 | 66 | 67 | 69 | 70 | 72 | 73 | 75 | 76 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /frontend/src/components/Home.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 36 | 37 | 103 | -------------------------------------------------------------------------------- /frontend/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "useDefineForClassFields": true, 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "esModuleInterop": true, 12 | "lib": ["esnext", "dom"] 13 | }, 14 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 15 | "exclude": ["node_modules/*", "dist/*"] 16 | } 17 | -------------------------------------------------------------------------------- /frontend/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | build: { 8 | rollupOptions: { 9 | output: { 10 | entryFileNames: `assets/[name].js`, 11 | chunkFileNames: `assets/[name].js`, 12 | assetFileNames: `assets/[name].[ext]` 13 | } 14 | } 15 | } 16 | }) 17 | -------------------------------------------------------------------------------- /go.mod.tmpl: -------------------------------------------------------------------------------- 1 | module {{.ProjectName}} 2 | 3 | go 1.17 4 | 5 | require github.com/wailsapp/wails/v2 {{.WailsVersion}} 6 | 7 | require ( 8 | github.com/andybalholm/brotli v1.0.2 // indirect 9 | github.com/davecgh/go-spew v1.1.1 // indirect 10 | github.com/fasthttp/websocket v0.0.0-20200320073529-1554a54587ab // indirect 11 | github.com/gabriel-vasile/mimetype v1.3.1 // indirect 12 | github.com/go-ole/go-ole v1.2.5 // indirect 13 | github.com/gofiber/fiber/v2 v2.17.0 // indirect 14 | github.com/gofiber/websocket/v2 v2.0.8 // indirect 15 | github.com/google/uuid v1.1.2 // indirect 16 | github.com/imdario/mergo v0.3.12 // indirect 17 | github.com/jchv/go-winloader v0.0.0-20200815041850-dec1ee9a7fd5 // indirect 18 | github.com/klauspost/compress v1.12.2 // indirect 19 | github.com/leaanthony/debme v1.2.1 // indirect 20 | github.com/leaanthony/go-ansi-parser v1.0.1 // indirect 21 | github.com/leaanthony/go-common-file-dialog v1.0.3 // indirect 22 | github.com/leaanthony/go-webview2 v0.0.0-20210914103035-f00aa774a934 // indirect 23 | github.com/leaanthony/slicer v1.5.0 // indirect 24 | github.com/leaanthony/typescriptify-golang-structs v0.1.7 // indirect 25 | github.com/leaanthony/webview2runtime v1.1.0 // indirect 26 | github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18 // indirect 27 | github.com/pkg/browser v0.0.0-20210706143420-7d21f8c997e2 // indirect 28 | github.com/pkg/errors v0.9.1 // indirect 29 | github.com/savsgio/gotils v0.0.0-20200117113501-90175b0fbe3f // indirect 30 | github.com/tkrajina/go-reflector v0.5.5 // indirect 31 | github.com/valyala/bytebufferpool v1.0.0 // indirect 32 | github.com/valyala/fasthttp v1.28.0 // indirect 33 | github.com/valyala/tcplisten v1.0.0 // indirect 34 | golang.org/x/net v0.0.0-20210510120150-4163338589ed // indirect 35 | golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf // indirect 36 | ) 37 | 38 | // replace github.com/wailsapp/wails/v2 {{.WailsVersion}} => {{.WailsDirectory}} -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= 2 | github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= 3 | github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= 4 | github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= 5 | github.com/andybalholm/brotli v1.0.2 h1:JKnhI/XQ75uFBTiuzXpzFrUriDPiZjlOSzh6wXogP0E= 6 | github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= 7 | github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= 8 | github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= 9 | github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 10 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 11 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 12 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 13 | github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= 14 | github.com/fasthttp/websocket v0.0.0-20200320073529-1554a54587ab h1:9e2joQGp642wHGFP5m86SDptAavrdGBe8/x9DGEEAaI= 15 | github.com/fasthttp/websocket v0.0.0-20200320073529-1554a54587ab/go.mod h1:smsv/h4PBEBaU0XDTY5UwJTpZv69fQ0FfcLJr21mA6Y= 16 | github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= 17 | github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= 18 | github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= 19 | github.com/gabriel-vasile/mimetype v1.3.1 h1:qevA6c2MtE1RorlScnixeG0VA1H4xrXyhyX3oWBynNQ= 20 | github.com/gabriel-vasile/mimetype v1.3.1/go.mod h1:fA8fi6KUiG7MgQQ+mEWotXoEOvmxRtOJlERCzSmRvr8= 21 | github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= 22 | github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= 23 | github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= 24 | github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= 25 | github.com/go-git/go-billy/v5 v5.0.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= 26 | github.com/go-git/go-billy/v5 v5.1.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= 27 | github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= 28 | github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= 29 | github.com/go-git/go-git/v5 v5.3.0/go.mod h1:xdX4bWJ48aOrdhnl2XqHYstHbbp6+LFS4r4X+lNVprw= 30 | github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= 31 | github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY= 32 | github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= 33 | github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= 34 | github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= 35 | github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= 36 | github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= 37 | github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= 38 | github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= 39 | github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= 40 | github.com/gofiber/fiber/v2 v2.17.0 h1:qP3PkGUbBB0i9iQh5E057XI1yO5CZigUxZhyUFYAFoM= 41 | github.com/gofiber/fiber/v2 v2.17.0/go.mod h1:iftruuHGkRYGEXVISmdD7HTYWyfS2Bh+Dkfq4n/1Owg= 42 | github.com/gofiber/websocket/v2 v2.0.8 h1:Hb4y6IxYZVMO0segROODXJiXVgVD3a6i7wnfot8kM6k= 43 | github.com/gofiber/websocket/v2 v2.0.8/go.mod h1:fv8HSGQX09sauNv9g5Xq8GeGAaahLFYQKKb4ZdT0x2w= 44 | github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= 45 | github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= 46 | github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 47 | github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= 48 | github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 49 | github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 50 | github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 51 | github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 52 | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 53 | github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 54 | github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= 55 | github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 56 | github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= 57 | github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= 58 | github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= 59 | github.com/jackmordaunt/icns v1.0.0/go.mod h1:7TTQVEuGzVVfOPPlLNHJIkzA6CoV7aH1Dv9dW351oOo= 60 | github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= 61 | github.com/jchv/go-winloader v0.0.0-20200815041850-dec1ee9a7fd5 h1:pdFFlHXY9tZXmJz+tRSm1DzYEH4ebha7cffmm607bMU= 62 | github.com/jchv/go-winloader v0.0.0-20200815041850-dec1ee9a7fd5/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs= 63 | github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= 64 | github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= 65 | github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= 66 | github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= 67 | github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= 68 | github.com/klauspost/compress v1.12.2 h1:2KCfW3I9M7nSc5wOqXAlW2v2U6v+w6cbjvbfp+OykW8= 69 | github.com/klauspost/compress v1.12.2/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= 70 | github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= 71 | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= 72 | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 73 | github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 74 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 75 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 76 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 77 | github.com/leaanthony/clir v1.0.4/go.mod h1:k/RBkdkFl18xkkACMCLt09bhiZnrGORoxmomeMvDpE0= 78 | github.com/leaanthony/debme v1.1.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA= 79 | github.com/leaanthony/debme v1.2.1 h1:9Tgwf+kjcrbMQ4WnPcEIUcQuIZYqdWftzZkBr+i/oOc= 80 | github.com/leaanthony/debme v1.2.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA= 81 | github.com/leaanthony/go-ansi-parser v1.0.1 h1:97v6c5kYppVsbScf4r/VZdXyQ21KQIfeQOk2DgKxGG4= 82 | github.com/leaanthony/go-ansi-parser v1.0.1/go.mod h1:7arTzgVI47srICYhvgUV4CGd063sGEeoSlych5yeSPM= 83 | github.com/leaanthony/go-common-file-dialog v1.0.3 h1:O0uGjKnWtdEADGrkg+TyAAbZylykMwwx/MNEXn9fp+Y= 84 | github.com/leaanthony/go-common-file-dialog v1.0.3/go.mod h1:TGhEc9eSJgRsupZ+iH1ZgAOnEo9zp05cRH2j08RPrF0= 85 | github.com/leaanthony/go-webview2 v0.0.0-20210914103035-f00aa774a934 h1:nK/JTPyJi5QRqYjVZjXgtN4/dhg2qtngoLxLDVn429k= 86 | github.com/leaanthony/go-webview2 v0.0.0-20210914103035-f00aa774a934/go.mod h1:lS5ds4bruPk9d7lzdF/OH31Z0YCerI6MmHNFGsWoUnM= 87 | github.com/leaanthony/gosod v1.0.2/go.mod h1:W8RyeSFBXu7RpIxPGEJfW4moSyGGEjlJMLV25wEbAdU= 88 | github.com/leaanthony/idgen v1.0.0/go.mod h1:4nBZnt8ml/f/ic/EVQuLxuj817RccT2fyrUaZFxrcVA= 89 | github.com/leaanthony/slicer v1.5.0 h1:aHYTN8xbCCLxJmkNKiLB6tgcMARl4eWmH9/F+S/0HtY= 90 | github.com/leaanthony/slicer v1.5.0/go.mod h1:FwrApmf8gOrpzEWM2J/9Lh79tyq8KTX5AzRtwV7m4AY= 91 | github.com/leaanthony/typescriptify-golang-structs v0.1.7 h1:yoznzWzyxkO/iWdlpq+aPcuJ5Y/hpjq/lmgMFmpjwl0= 92 | github.com/leaanthony/typescriptify-golang-structs v0.1.7/go.mod h1:cWtOkiVhMF77e6phAXUcfNwYmMwCJ67Sij24lfvi9Js= 93 | github.com/leaanthony/webview2runtime v1.1.0 h1:N0pv55ift8XtqozIp4PNOtRCJ/Qdd/qzx80lUpalS4c= 94 | github.com/leaanthony/webview2runtime v1.1.0/go.mod h1:hH9GnWCve3DYzNaPOcPbhHQ7fodXR1QJNsnwixid4Tk= 95 | github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18 h1:5iOd93PZbpH4Iir8QkC4coFD+zEQEZSIRcjwjTFZkr0= 96 | github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18/go.mod h1:KEbMsKoznsebyGHwLk5LqkFOxL5uXSRdvpP4+avmAMs= 97 | github.com/leaanthony/winicon v1.0.0/go.mod h1:en5xhijl92aphrJdmRPlh4NI1L6wq3gEm0LpXAPghjU= 98 | github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= 99 | github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= 100 | github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= 101 | github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= 102 | github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= 103 | github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= 104 | github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= 105 | github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 106 | github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= 107 | github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= 108 | github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= 109 | github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= 110 | github.com/pkg/browser v0.0.0-20210706143420-7d21f8c997e2 h1:acNfDZXmm28D2Yg/c3ALnZStzNaZMSagpbr96vY6Zjc= 111 | github.com/pkg/browser v0.0.0-20210706143420-7d21f8c997e2/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= 112 | github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 113 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= 114 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 115 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 116 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 117 | github.com/savsgio/gotils v0.0.0-20200117113501-90175b0fbe3f h1:PgA+Olipyj258EIEYnpFFONrrCcAIWNUNoFhUfMqAGY= 118 | github.com/savsgio/gotils v0.0.0-20200117113501-90175b0fbe3f/go.mod h1:lHhJedqxCoHN+zMtwGNTXWmF0u9Jt363FYRhV6g0CdY= 119 | github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= 120 | github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= 121 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 122 | github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 123 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 124 | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 125 | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= 126 | github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= 127 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 128 | github.com/tc-hib/winres v0.1.5/go.mod h1:pe6dOR40VOrGz8PkzreVKNvEKnlE8t4yR8A8naL+t7A= 129 | github.com/tdewolff/minify v2.3.6+incompatible/go.mod h1:9Ov578KJUmAWpS6NeZwRZyT56Uf6o3Mcz9CEsg8USYs= 130 | github.com/tdewolff/parse v2.3.4+incompatible/go.mod h1:8oBwCsVmUkgHO8M5iCzSIDtpzXOT0WXX9cWhz+bIzJQ= 131 | github.com/tdewolff/test v1.0.6/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE= 132 | github.com/tidwall/gjson v1.8.0/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk= 133 | github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= 134 | github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= 135 | github.com/tidwall/sjson v1.1.7/go.mod h1:w/yG+ezBeTdUxiKs5NcPicO9diP38nk96QBAbIIGeFs= 136 | github.com/tkrajina/go-reflector v0.5.5 h1:gwoQFNye30Kk7NrExj8zm3zFtrGPqOkzFMLuQZg1DtQ= 137 | github.com/tkrajina/go-reflector v0.5.5/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4= 138 | github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= 139 | github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= 140 | github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= 141 | github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= 142 | github.com/valyala/fasthttp v1.9.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= 143 | github.com/valyala/fasthttp v1.26.0/go.mod h1:cmWIqlu99AO/RKcp1HWaViTqc57FswJOfYYdPJBl8BA= 144 | github.com/valyala/fasthttp v1.28.0 h1:ruVmTmZaBR5i67NqnjvvH5gEv0zwHfWtbjoyW98iho4= 145 | github.com/valyala/fasthttp v1.28.0/go.mod h1:cmWIqlu99AO/RKcp1HWaViTqc57FswJOfYYdPJBl8BA= 146 | github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= 147 | github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= 148 | github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= 149 | github.com/wzshiming/ctc v1.2.3/go.mod h1:2tVAtIY7SUyraSk0JxvwmONNPFL4ARavPuEsg5+KA28= 150 | github.com/wzshiming/winseq v0.0.0-20200112104235-db357dc107ae/go.mod h1:VTAq37rkGeV+WOybvZwjXiJOicICdpLCN8ifpISjK20= 151 | github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= 152 | github.com/xyproto/xpm v1.2.1/go.mod h1:cMnesLsD0PBXLgjDfTDEaKr8XyTFsnP1QycSqRw7BiY= 153 | github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 154 | github.com/ztrue/tracerr v0.3.0/go.mod h1:qEalzze4VN9O8tnhBXScfCrmoJo10o8TN5ciKjm6Mww= 155 | golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= 156 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 157 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 158 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 159 | golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= 160 | golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= 161 | golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= 162 | golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= 163 | golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 164 | golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 165 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 166 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 167 | golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 168 | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 169 | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 170 | golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= 171 | golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 172 | golang.org/x/net v0.0.0-20210510120150-4163338589ed h1:p9UgmWI9wKpfYmgaV/IZKGdXc5qEK45tDwwwDyjS26I= 173 | golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 174 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 175 | golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 176 | golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 177 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 178 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 179 | golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 180 | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 181 | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 182 | golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 183 | golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 184 | golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 185 | golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 186 | golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 187 | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 188 | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 189 | golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 190 | golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 191 | golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 192 | golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 193 | golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 194 | golang.org/x/sys v0.0.0-20210611083646-a4fc73990273/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 195 | golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 196 | golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf h1:2ucpDCmfkl8Bd/FsLtiD653Wf96cW37s+iGx93zsu4k= 197 | golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 198 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 199 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 200 | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= 201 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 202 | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 203 | golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 204 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 205 | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 206 | golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= 207 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 208 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 209 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 210 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 211 | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= 212 | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 213 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 214 | gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 215 | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 216 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= 217 | gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= 218 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 219 | gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 220 | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 221 | gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= 222 | gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 223 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= 224 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 225 | nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= 226 | -------------------------------------------------------------------------------- /main.tmpl.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "embed" 5 | "log" 6 | 7 | "github.com/wailsapp/wails/v2" 8 | "github.com/wailsapp/wails/v2/pkg/logger" 9 | "github.com/wailsapp/wails/v2/pkg/options" 10 | "github.com/wailsapp/wails/v2/pkg/options/windows" 11 | ) 12 | 13 | //go:embed frontend/dist 14 | var assets embed.FS 15 | 16 | func main() { 17 | // Create an instance of the app structure 18 | app := NewApp() 19 | 20 | // Create application with options 21 | err := wails.Run(&options.App{ 22 | Title: "{{.ProjectName}}", 23 | Width: 1024, 24 | Height: 768, 25 | // MinWidth: 720, 26 | // MinHeight: 570, 27 | // MaxWidth: 1280, 28 | // MaxHeight: 740, 29 | DisableResize: false, 30 | Fullscreen: false, 31 | Frameless: false, 32 | StartHidden: false, 33 | HideWindowOnClose: false, 34 | RGBA: &options.RGBA{R: 255, G: 255, B: 255, A: 255}, 35 | Assets: assets, 36 | LogLevel: logger.DEBUG, 37 | OnStartup: app.startup, 38 | OnDomReady: app.domReady, 39 | OnShutdown: app.shutdown, 40 | Bind: []interface{}{ 41 | app, 42 | }, 43 | // Windows platform specific options 44 | Windows: &windows.Options{ 45 | WebviewIsTransparent: false, 46 | WindowIsTranslucent: false, 47 | DisableWindowIcon: false, 48 | }, 49 | }) 50 | 51 | if err != nil { 52 | log.Fatal(err) 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /template.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Vue3 TypeScript + Vite", 3 | "shortname": "wails-vite-vue-ts", 4 | "author": "Cody Bentley