pack: vutron now uses typescript

This commit is contained in:
leejooy96 committed 2022-10-18 11:08:55 +09:00
1 parent 30b0676f13
commit 5a4fa9a981
25 files changed
+580 -26

No files matched your search

+5 -1
View File
@@ -2,6 +2,7 @@
"root": true, "root": true,
"parser": "vue-eslint-parser", "parser": "vue-eslint-parser",
"parserOptions": { "parserOptions": {
"parser": "@typescript-eslint/parser",
"sourceType": "module", "sourceType": "module",
"ecmaVersion": 2022, "ecmaVersion": 2022,
"ecmaFeatures": { "ecmaFeatures": {
@@ -12,7 +13,10 @@
"node": true, "node": true,
"es6": true "es6": true
}, },
"extends": ["standard", "plugin:vue/vue3-recommended"], "extends": [
"standard",
"plugin:vue/vue3-recommended"
],
"globals": { "globals": {
"__static": true "__static": true
}, },
+2 -1
View File
@@ -48,11 +48,12 @@ https://github.com/jooy2/vutron-webpack
- [Vite 3.x.x](https://vitejs.dev) - [Vite 3.x.x](https://vitejs.dev)
- [Electron 21.x.x](https://www.electronjs.org) - [Electron 21.x.x](https://www.electronjs.org)
- [Electron Builder 23.x](https://www.electron.build) - [Electron Builder 23.x](https://www.electron.build)
- [TypeScript 4.x](https://www.typescriptlang.org)
- [Vue 3.2.x](https://vuejs.org) - [Vue 3.2.x](https://vuejs.org)
- [Vue-i18n 9.x](https://kazupon.github.io/vue-i18n) - [Vue-i18n 9.x](https://kazupon.github.io/vue-i18n)
- [Vue-router 4.x](https://router.vuejs.org) - [Vue-router 4.x](https://router.vuejs.org)
- [Pinia 2.x](https://pinia.vuejs.org)
- [Vuetify 3.x (Beta)](https://next.vuetifyjs.com) - [Vuetify 3.x (Beta)](https://next.vuetifyjs.com)
- [Pinia 2.x](https://pinia.vuejs.org)
- [ESLint 8.x](https://eslint.org) - [ESLint 8.x](https://eslint.org)
## Installation ## Installation
+1
View File
@@ -17,6 +17,7 @@
*/ */
"dist/**/*", "dist/**/*",
"!dist/release/**/*", "!dist/release/**/*",
"!dist/main/index.ts",
"!**/.*", "!**/.*",
/* /*
(Optional) Please review the list below based on your project preferences, as you may need to include them as needed. (Optional) Please review the list below based on your project preferences, as you may need to include them as needed.
+492 -1
View File
@@ -18,6 +18,7 @@
"vuetify": "^3.0.0-beta.13" "vuetify": "^3.0.0-beta.13"
}, },
"devDependencies": { "devDependencies": {
"@typescript-eslint/parser": "^5.40.1",
"@vitejs/plugin-vue": "^3.1.2", "@vitejs/plugin-vue": "^3.1.2",
"@vitejs/plugin-vue-jsx": "^2.0.1", "@vitejs/plugin-vue-jsx": "^2.0.1",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
@@ -28,9 +29,11 @@
"eslint-friendly-formatter": "^4.0.1", "eslint-friendly-formatter": "^4.0.1",
"eslint-plugin-import": "^2.26.0", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-vue": "^9.5.1", "eslint-plugin-vue": "^9.5.1",
"typescript": "^4.8.4",
"vite": "^3.1.4", "vite": "^3.1.4",
"vite-plugin-electron": "^0.9.3", "vite-plugin-electron": "^0.9.3",
"vue-eslint-parser": "^9.1.0" "vue-eslint-parser": "^9.1.0",
"vue-tsc": "^1.0.8"
}, },
"engines": { "engines": {
"node": ">=16.0.0" "node": ">=16.0.0"
@@ -1051,6 +1054,131 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@typescript-eslint/parser": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.1.tgz",
"integrity": "sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==",
"dev": true,
"dependencies": {
"@typescript-eslint/scope-manager": "5.40.1",
"@typescript-eslint/types": "5.40.1",
"@typescript-eslint/typescript-estree": "5.40.1",
"debug": "^4.3.4"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz",
"integrity": "sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "5.40.1",
"@typescript-eslint/visitor-keys": "5.40.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
"node_modules/@typescript-eslint/types": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.1.tgz",
"integrity": "sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz",
"integrity": "sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "5.40.1",
"@typescript-eslint/visitor-keys": "5.40.1",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
"semver": "^7.3.7",
"tsutils": "^3.21.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
"version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz",
"integrity": "sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "5.40.1",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
"integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@vitejs/plugin-vue": { "node_modules/@vitejs/plugin-vue": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.2.tgz", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.2.tgz",
@@ -1083,6 +1211,82 @@
"vue": "^3.0.0" "vue": "^3.0.0"
} }
}, },
"node_modules/@volar/language-core": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.8.tgz",
"integrity": "sha512-uxYSOqBk8ZFSzGjUIPOBEFPOg8F3CE6cLO5meK95DODGIlUlPytGiy9sy8QZ9w7RpUH4XMOX3MH/G48SLgP07A==",
"dev": true,
"dependencies": {
"@volar/source-map": "1.0.8",
"@vue/reactivity": "^3.2.40",
"muggle-string": "^0.1.0"
}
},
"node_modules/@volar/source-map": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.8.tgz",
"integrity": "sha512-uKMe+alyfl1Abs5SviKejFoe7x9g6jDPVpVt63Tet4qn1Ziy7tFsvtCpM2Y1Ko5qw2nLIeloLslPqm9/gmbBLQ==",
"dev": true,
"dependencies": {
"muggle-string": "^0.1.0"
}
},
"node_modules/@volar/typescript": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.8.tgz",
"integrity": "sha512-2oY1Apvzcs/5tAn7p1tRlDxNgal5ezaK0h9cutcWALeimsaQBAEE2NAirCrLMHl8DneuDce0tzJqHaQeHw9RmQ==",
"dev": true,
"dependencies": {
"@volar/language-core": "1.0.8"
}
},
"node_modules/@volar/vue-language-core": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.8.tgz",
"integrity": "sha512-cXb7oTybxcm1vpz003agdYQHyxij7UAaSub60d7W1aMWpqb2iaCbVaq9izgQFlrpC4/JnVs+cJPb/Q6fAUVxBg==",
"dev": true,
"dependencies": {
"@volar/language-core": "1.0.8",
"@volar/source-map": "1.0.8",
"@vue/compiler-dom": "^3.2.40",
"@vue/compiler-sfc": "^3.2.40",
"@vue/reactivity": "^3.2.40",
"@vue/shared": "^3.2.40",
"minimatch": "^5.1.0",
"vue-template-compiler": "^2.7.10"
}
},
"node_modules/@volar/vue-language-core/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@volar/vue-language-core/node_modules/minimatch": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
"integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@volar/vue-typescript": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.8.tgz",
"integrity": "sha512-6jBvA7iwBkRqS2VQx2gLJgfLcF3hcODyJ6Lmiw2tN8D/LVfFCovvzJgPvIQb9Y4i+rha1Y0cpsYOUt9XW2Z7ZA==",
"dev": true,
"dependencies": {
"@volar/typescript": "1.0.8",
"@volar/vue-language-core": "1.0.8"
}
},
"node_modules/@vue/babel-helper-vue-transform-on": { "node_modules/@vue/babel-helper-vue-transform-on": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz",
@@ -2310,6 +2514,12 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
}, },
"node_modules/de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
"integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
"dev": true
},
"node_modules/debug": { "node_modules/debug": {
"version": "4.3.4", "version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -4605,6 +4815,15 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true,
"bin": {
"he": "bin/he"
}
},
"node_modules/hosted-git-info": { "node_modules/hosted-git-info": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
@@ -5504,6 +5723,12 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}, },
"node_modules/muggle-string": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz",
"integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==",
"dev": true
},
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.4", "version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@@ -6686,6 +6911,27 @@
"json5": "lib/cli.js" "json5": "lib/cli.js"
} }
}, },
"node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
"node_modules/tsutils": {
"version": "3.21.0",
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
"dev": true,
"dependencies": {
"tslib": "^1.8.1"
},
"engines": {
"node": ">= 6"
},
"peerDependencies": {
"typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
}
},
"node_modules/tunnel": { "node_modules/tunnel": {
"version": "0.0.6", "version": "0.0.6",
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
@@ -6728,6 +6974,19 @@
"is-typedarray": "^1.0.0" "is-typedarray": "^1.0.0"
} }
}, },
"node_modules/typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"devOptional": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
}
},
"node_modules/unbox-primitive": { "node_modules/unbox-primitive": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
@@ -7136,6 +7395,32 @@
"vue": "^3.2.0" "vue": "^3.2.0"
} }
}, },
"node_modules/vue-template-compiler": {
"version": "2.7.13",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.13.tgz",
"integrity": "sha512-jYM6TClwDS9YqP48gYrtAtaOhRKkbYmbzE+Q51gX5YDr777n7tNI/IZk4QV4l/PjQPNh/FVa/E92sh/RqKMrog==",
"dev": true,
"dependencies": {
"de-indent": "^1.0.2",
"he": "^1.2.0"
}
},
"node_modules/vue-tsc": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.8.tgz",
"integrity": "sha512-+0sJ+QVH7SHLt8mV/uIw4xlHDk1mWigZkMFugfZTv8rlHpM3S2tCVZ0BWEGclT/0rKdO8j+St+mljpvhWPN/eQ==",
"dev": true,
"dependencies": {
"@volar/vue-language-core": "1.0.8",
"@volar/vue-typescript": "1.0.8"
},
"bin": {
"vue-tsc": "bin/vue-tsc.js"
},
"peerDependencies": {
"typescript": "*"
}
},
"node_modules/vuetify": { "node_modules/vuetify": {
"version": "3.0.0-beta.13", "version": "3.0.0-beta.13",
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.0.0-beta.13.tgz", "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.0.0-beta.13.tgz",
@@ -8141,6 +8426,78 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"@typescript-eslint/parser": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.1.tgz",
"integrity": "sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==",
"dev": true,
"requires": {
"@typescript-eslint/scope-manager": "5.40.1",
"@typescript-eslint/types": "5.40.1",
"@typescript-eslint/typescript-estree": "5.40.1",
"debug": "^4.3.4"
}
},
"@typescript-eslint/scope-manager": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz",
"integrity": "sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg==",
"dev": true,
"requires": {
"@typescript-eslint/types": "5.40.1",
"@typescript-eslint/visitor-keys": "5.40.1"
}
},
"@typescript-eslint/types": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.1.tgz",
"integrity": "sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz",
"integrity": "sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==",
"dev": true,
"requires": {
"@typescript-eslint/types": "5.40.1",
"@typescript-eslint/visitor-keys": "5.40.1",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
"semver": "^7.3.7",
"tsutils": "^3.21.0"
},
"dependencies": {
"semver": {
"version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
}
}
},
"@typescript-eslint/visitor-keys": {
"version": "5.40.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz",
"integrity": "sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw==",
"dev": true,
"requires": {
"@typescript-eslint/types": "5.40.1",
"eslint-visitor-keys": "^3.3.0"
},
"dependencies": {
"eslint-visitor-keys": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
"integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
"dev": true
}
}
},
"@vitejs/plugin-vue": { "@vitejs/plugin-vue": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.2.tgz", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.2.tgz",
@@ -8160,6 +8517,81 @@
"@vue/babel-plugin-jsx": "^1.1.1" "@vue/babel-plugin-jsx": "^1.1.1"
} }
}, },
"@volar/language-core": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.8.tgz",
"integrity": "sha512-uxYSOqBk8ZFSzGjUIPOBEFPOg8F3CE6cLO5meK95DODGIlUlPytGiy9sy8QZ9w7RpUH4XMOX3MH/G48SLgP07A==",
"dev": true,
"requires": {
"@volar/source-map": "1.0.8",
"@vue/reactivity": "^3.2.40",
"muggle-string": "^0.1.0"
}
},
"@volar/source-map": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.8.tgz",
"integrity": "sha512-uKMe+alyfl1Abs5SviKejFoe7x9g6jDPVpVt63Tet4qn1Ziy7tFsvtCpM2Y1Ko5qw2nLIeloLslPqm9/gmbBLQ==",
"dev": true,
"requires": {
"muggle-string": "^0.1.0"
}
},
"@volar/typescript": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.8.tgz",
"integrity": "sha512-2oY1Apvzcs/5tAn7p1tRlDxNgal5ezaK0h9cutcWALeimsaQBAEE2NAirCrLMHl8DneuDce0tzJqHaQeHw9RmQ==",
"dev": true,
"requires": {
"@volar/language-core": "1.0.8"
}
},
"@volar/vue-language-core": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.8.tgz",
"integrity": "sha512-cXb7oTybxcm1vpz003agdYQHyxij7UAaSub60d7W1aMWpqb2iaCbVaq9izgQFlrpC4/JnVs+cJPb/Q6fAUVxBg==",
"dev": true,
"requires": {
"@volar/language-core": "1.0.8",
"@volar/source-map": "1.0.8",
"@vue/compiler-dom": "^3.2.40",
"@vue/compiler-sfc": "^3.2.40",
"@vue/reactivity": "^3.2.40",
"@vue/shared": "^3.2.40",
"minimatch": "^5.1.0",
"vue-template-compiler": "^2.7.10"
},
"dependencies": {
"brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
}
},
"minimatch": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
"integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"dev": true,
"requires": {
"brace-expansion": "^2.0.1"
}
}
}
},
"@volar/vue-typescript": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.8.tgz",
"integrity": "sha512-6jBvA7iwBkRqS2VQx2gLJgfLcF3hcODyJ6Lmiw2tN8D/LVfFCovvzJgPvIQb9Y4i+rha1Y0cpsYOUt9XW2Z7ZA==",
"dev": true,
"requires": {
"@volar/typescript": "1.0.8",
"@volar/vue-language-core": "1.0.8"
}
},
"@vue/babel-helper-vue-transform-on": { "@vue/babel-helper-vue-transform-on": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz",
@@ -9107,6 +9539,12 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
}, },
"de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
"integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
"dev": true
},
"debug": { "debug": {
"version": "4.3.4", "version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -10731,6 +11169,12 @@
"integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
"dev": true "dev": true
}, },
"he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true
},
"hosted-git-info": { "hosted-git-info": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
@@ -11368,6 +11812,12 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}, },
"muggle-string": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz",
"integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==",
"dev": true
},
"nanoid": { "nanoid": {
"version": "3.3.4", "version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@@ -12216,6 +12666,21 @@
} }
} }
}, },
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
"tsutils": {
"version": "3.21.0",
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
"dev": true,
"requires": {
"tslib": "^1.8.1"
}
},
"tunnel": { "tunnel": {
"version": "0.0.6", "version": "0.0.6",
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
@@ -12246,6 +12711,12 @@
"is-typedarray": "^1.0.0" "is-typedarray": "^1.0.0"
} }
}, },
"typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"devOptional": true
},
"unbox-primitive": { "unbox-primitive": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
@@ -12527,6 +12998,26 @@
"@vue/devtools-api": "^6.1.4" "@vue/devtools-api": "^6.1.4"
} }
}, },
"vue-template-compiler": {
"version": "2.7.13",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.13.tgz",
"integrity": "sha512-jYM6TClwDS9YqP48gYrtAtaOhRKkbYmbzE+Q51gX5YDr777n7tNI/IZk4QV4l/PjQPNh/FVa/E92sh/RqKMrog==",
"dev": true,
"requires": {
"de-indent": "^1.0.2",
"he": "^1.2.0"
}
},
"vue-tsc": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.8.tgz",
"integrity": "sha512-+0sJ+QVH7SHLt8mV/uIw4xlHDk1mWigZkMFugfZTv8rlHpM3S2tCVZ0BWEGclT/0rKdO8j+St+mljpvhWPN/eQ==",
"dev": true,
"requires": {
"@volar/vue-language-core": "1.0.8",
"@volar/vue-typescript": "1.0.8"
}
},
"vuetify": { "vuetify": {
"version": "3.0.0-beta.13", "version": "3.0.0-beta.13",
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.0.0-beta.13.tgz", "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.0.0-beta.13.tgz",
+5 -2
View File
@@ -5,7 +5,7 @@
"main": "dist/main/index.js", "main": "dist/main/index.js",
"scripts": { "scripts": {
"dev": "cross-env NODE_ENV=development vite", "dev": "cross-env NODE_ENV=development vite",
"build": "npm run build:pre && electron-builder -wml", "build": "vue-tsc --noEmit && npm run build:pre && electron-builder -wml",
"build:pre": "cross-env NODE_ENV=production vite build", "build:pre": "cross-env NODE_ENV=production vite build",
"build:dir": "npm run build:pre && electron-builder --dir", "build:dir": "npm run build:pre && electron-builder --dir",
"build:mac": "npm run build:pre && CSC_IDENTITY_AUTO_DISCOVERY=false electron-builder --mac", "build:mac": "npm run build:pre && CSC_IDENTITY_AUTO_DISCOVERY=false electron-builder --mac",
@@ -29,6 +29,7 @@
"vuetify": "^3.0.0-beta.13" "vuetify": "^3.0.0-beta.13"
}, },
"devDependencies": { "devDependencies": {
"@typescript-eslint/parser": "^5.40.1",
"@vitejs/plugin-vue": "^3.1.2", "@vitejs/plugin-vue": "^3.1.2",
"@vitejs/plugin-vue-jsx": "^2.0.1", "@vitejs/plugin-vue-jsx": "^2.0.1",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
@@ -39,8 +40,10 @@
"eslint-friendly-formatter": "^4.0.1", "eslint-friendly-formatter": "^4.0.1",
"eslint-plugin-import": "^2.26.0", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-vue": "^9.5.1", "eslint-plugin-vue": "^9.5.1",
"typescript": "^4.8.4",
"vite": "^3.1.4", "vite": "^3.1.4",
"vite-plugin-electron": "^0.9.3", "vite-plugin-electron": "^0.9.3",
"vue-eslint-parser": "^9.1.0" "vue-eslint-parser": "^9.1.0",
"vue-tsc": "^1.0.8"
} }
} }
@@ -1,16 +1,16 @@
import { app, BrowserWindow } from 'electron' import { app, BrowserWindow, RenderProcessGoneDetails } from 'electron'
import Constants from './utils/Constants' import Constants from './utils/Constants'
import * as electronRemote from '@electron/remote/main' import * as electronRemote from '@electron/remote/main'
const exitApp = (mainWindow) => { const exitApp = (mainWindow: BrowserWindow) : void => {
if (mainWindow && !mainWindow.isDestroyed()) { if (mainWindow && !mainWindow.isDestroyed()) {
mainWindow.hide() mainWindow.hide()
} }
mainWindow = null mainWindow.destroy()
app.exit() app.exit()
} }
export const createMainWindow = async (mainWindow) => { export const createMainWindow = async (mainWindow: BrowserWindow) : Promise<BrowserWindow> => {
mainWindow = new BrowserWindow({ mainWindow = new BrowserWindow({
title: Constants.APP_NAME, title: Constants.APP_NAME,
show: false, show: false,
@@ -22,7 +22,7 @@ export const createMainWindow = async (mainWindow) => {
mainWindow.setMenu(null) mainWindow.setMenu(null)
mainWindow.on('close', (event) => { mainWindow.on('close', (event: Event) => {
event.preventDefault() event.preventDefault()
exitApp(mainWindow) exitApp(mainWindow)
}) })
@@ -51,7 +51,7 @@ export const createMainWindow = async (mainWindow) => {
return mainWindow return mainWindow
} }
export const createErrorWindow = async (errorWindow, mainWindow, details) => { export const createErrorWindow = async (errorWindow: BrowserWindow, mainWindow: BrowserWindow, details?: RenderProcessGoneDetails) : Promise<BrowserWindow> => {
if (!Constants.IS_DEV_ENV) { if (!Constants.IS_DEV_ENV) {
mainWindow?.hide() mainWindow?.hide()
} }
+2 -2
View File
@@ -1,4 +1,4 @@
import { app } from 'electron' import { app, WebContents, RenderProcessGoneDetails } from 'electron'
import Constants from './utils/Constants' import Constants from './utils/Constants'
import { createErrorWindow, createMainWindow } from './MainRunner' import { createErrorWindow, createMainWindow } from './MainRunner'
import Menus from './utils/Menus' import Menus from './utils/Menus'
@@ -27,7 +27,7 @@ app.on('window-all-closed', () => {
} }
}) })
app.on('render-process-gone', (ev, webContents, details) => { app.on('render-process-gone', (event: Event, webContents: WebContents, details: RenderProcessGoneDetails) => {
errorWindow = createErrorWindow(errorWindow, mainWindow, details) errorWindow = createErrorWindow(errorWindow, mainWindow, details)
}) })
File renamed without changes.
@@ -2,7 +2,7 @@ import { systemPreferences } from 'electron'
import Constants from './Constants' import Constants from './Constants'
export default class Menus { export default class Menus {
static macOSDisableDefaultMenuItem () { static macOSDisableDefaultMenuItem () : void {
if (Constants.IS_MAC) { if (Constants.IS_MAC) {
systemPreferences.setUserDefault('NSDisabledDictationMenuItem', 'boolean', true) systemPreferences.setUserDefault('NSDisabledDictationMenuItem', 'boolean', true)
systemPreferences.setUserDefault('NSDisabledCharacterPaletteMenuItem', 'boolean', true) systemPreferences.setUserDefault('NSDisabledCharacterPaletteMenuItem', 'boolean', true)
+1 -1
View File
@@ -1,4 +1,4 @@
<script setup> <script setup lang="tsx">
import { DefaultLayout } from '@/renderer/components/layout' import { DefaultLayout } from '@/renderer/components/layout'
</script> </script>
@@ -1,5 +1,5 @@
<script setup> <script setup lang="tsx">
import HeaderLayout from '@/renderer/components/layout/HeaderLayout' import HeaderLayout from '@/renderer/components/layout/HeaderLayout.vue'
</script> </script>
<template> <template>
+1 -1
View File
@@ -6,5 +6,5 @@
<body> <body>
<div id="app"></div> <div id="app"></div>
</body> </body>
<script type="module" src="./main.js"></script> <script type="module" src="./main.ts"></script>
</html> </html>
@@ -1,7 +1,7 @@
import { createApp } from 'vue' import { createApp } from 'vue'
import { createPinia } from 'pinia' import { createPinia } from 'pinia'
import App from '@/renderer/App' import App from '@/renderer/App.vue'
import router from '@/renderer/router' import router from '@/renderer/router'
import vuetify from '@/renderer/plugins/vuetify' import vuetify from '@/renderer/plugins/vuetify'
import i18n from '@/renderer/plugins/i18n' import i18n from '@/renderer/plugins/i18n'
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -1,4 +1,4 @@
<script setup> <script setup lang="tsx">
</script> </script>
<template> <template>
+1 -1
View File
@@ -1,4 +1,4 @@
<script setup> <script setup lang="tsx">
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { useTheme } from 'vuetify' import { useTheme } from 'vuetify'
import Utils from '@/renderer/utils' import Utils from '@/renderer/utils'
File renamed without changes.
File renamed without changes.
@@ -1,11 +1,11 @@
import { shell } from 'electron' import { shell } from 'electron'
export default class Utils { export default class Utils {
static getCurrentLocale () { static getCurrentLocale () : string {
return navigator?.language?.split('-')[0] || 'en' return navigator?.language?.split('-')[0] || 'en'
} }
static async openExternal (url) { static async openExternal (url: string) : Promise<void> {
await shell.openExternal(url) await shell.openExternal(url)
} }
} }
+38
View File
@@ -0,0 +1,38 @@
{
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist",
"target": "esnext",
"module": "esnext",
"moduleResolution": "node",
"jsx": "preserve",
"noImplicitAny": false,
"allowSyntheticDefaultImports": true,
"declaration": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"sourceMap": true,
"strict": true,
"skipLibCheck": true,
"paths": {
"@/*": [
"./src/*"
]
},
"lib": [
"esnext",
"dom"
]
},
"include": [
"src/**/*/*.ts",
"src/**/*/*.d.ts",
"src/**/*/*.tsx",
"src/**/*/*.vue"
],
"references": [
{
"path": "./tsconfig.node.json"
}
]
}
+15
View File
@@ -0,0 +1,15 @@
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"jsx": "preserve",
"moduleResolution": "node",
"composite": true,
"resolveJsonModule": true,
"allowSyntheticDefaultImports": true
},
"include": [
"package.json",
"electron"
]
}
+4 -3
View File
@@ -1,8 +1,9 @@
import { fileURLToPath } from 'url'
import { defineConfig } from 'vite' import { defineConfig } from 'vite'
import electron from 'vite-plugin-electron' import electron from 'vite-plugin-electron'
import vueJsx from '@vitejs/plugin-vue-jsx' import vueJsx from '@vitejs/plugin-vue-jsx'
import vue from '@vitejs/plugin-vue' import vue from '@vitejs/plugin-vue'
import { resolve, join } from 'path' import { resolve, dirname } from 'path'
import { builtinModules } from 'module' import { builtinModules } from 'module'
export default defineConfig({ export default defineConfig({
@@ -21,7 +22,7 @@ export default defineConfig({
'.scss' '.scss'
], ],
alias: { alias: {
'@': join(__dirname, 'src') '@': resolve(dirname(fileURLToPath(import.meta.url)), 'src')
} }
}, },
base: './', base: './',
@@ -35,7 +36,7 @@ export default defineConfig({
vueJsx(), vueJsx(),
electron({ electron({
main: { main: {
entry: 'src/main/index.js', entry: 'src/main/index.ts',
vite: { vite: {
publicDir: resolve('./src/main'), publicDir: resolve('./src/main'),
build: { build: {