diff --git a/web/.eslintignore b/web/.eslintignore index 94e770c8b..5382a86c6 100644 --- a/web/.eslintignore +++ b/web/.eslintignore @@ -5,3 +5,4 @@ package.json tsconfig.eslint.json tsconfig.json src/assets/locales/ +components.d.ts diff --git a/web/.eslintrc.js b/web/.eslintrc.js index f35b28445..7a3bb2884 100644 --- a/web/.eslintrc.js +++ b/web/.eslintrc.js @@ -121,6 +121,8 @@ module.exports = { ], 'vue/new-line-between-multi-line-property': 'error', 'vue/padding-line-between-blocks': 'error', + 'vue/multi-word-component-names': 'off', + 'vue/no-reserved-component-names': 'off', // css rules 'vue-scoped-css/no-unused-selector': 'error', diff --git a/web/.prettierignore b/web/.prettierignore index 73eb11349..f30458189 100644 --- a/web/.prettierignore +++ b/web/.prettierignore @@ -2,3 +2,4 @@ yarn-lock.yaml dist coverage/ LICENSE +components.d.ts diff --git a/web/components.d.ts b/web/components.d.ts new file mode 100644 index 000000000..83f367083 --- /dev/null +++ b/web/components.d.ts @@ -0,0 +1,45 @@ +// generated by unplugin-vue-components +// We suggest you to commit this file into source control +// Read more: https://github.com/vuejs/core/pull/3399 +import '@vue/runtime-core' + +export {} + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + ActionsTab: typeof import('./src/components/repo/settings/ActionsTab.vue')['default'] + ActiveBuilds: typeof import('./src/components/layout/header/ActiveBuilds.vue')['default'] + BadgeTab: typeof import('./src/components/repo/settings/BadgeTab.vue')['default'] + BuildFeedItem: typeof import('./src/components/build-feed/BuildFeedItem.vue')['default'] + BuildFeedSidebar: typeof import('./src/components/build-feed/BuildFeedSidebar.vue')['default'] + BuildItem: typeof import('./src/components/repo/build/BuildItem.vue')['default'] + BuildList: typeof import('./src/components/repo/build/BuildList.vue')['default'] + BuildLog: typeof import('./src/components/repo/build/BuildLog.vue')['default'] + BuildProcDuration: typeof import('./src/components/repo/build/BuildProcDuration.vue')['default'] + BuildProcList: typeof import('./src/components/repo/build/BuildProcList.vue')['default'] + BuildRunningIcon: typeof import('./src/components/repo/build/BuildRunningIcon.vue')['default'] + BuildStatusIcon: typeof import('./src/components/repo/build/BuildStatusIcon.vue')['default'] + Button: typeof import('./src/components/atomic/Button.vue')['default'] + Checkbox: typeof import('./src/components/form/Checkbox.vue')['default'] + CheckboxesField: typeof import('./src/components/form/CheckboxesField.vue')['default'] + DocsLink: typeof import('./src/components/atomic/DocsLink.vue')['default'] + FluidContainer: typeof import('./src/components/layout/FluidContainer.vue')['default'] + GeneralTab: typeof import('./src/components/repo/settings/GeneralTab.vue')['default'] + Icon: typeof import('./src/components/atomic/Icon.vue')['default'] + IconButton: typeof import('./src/components/atomic/IconButton.vue')['default'] + InputField: typeof import('./src/components/form/InputField.vue')['default'] + ListItem: typeof import('./src/components/atomic/ListItem.vue')['default'] + Navbar: typeof import('./src/components/layout/header/Navbar.vue')['default'] + NumberField: typeof import('./src/components/form/NumberField.vue')['default'] + Panel: typeof import('./src/components/layout/Panel.vue')['default'] + RadioField: typeof import('./src/components/form/RadioField.vue')['default'] + RegistriesTab: typeof import('./src/components/repo/settings/RegistriesTab.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + SecretsTab: typeof import('./src/components/repo/settings/SecretsTab.vue')['default'] + SelectField: typeof import('./src/components/form/SelectField.vue')['default'] + Tab: typeof import('./src/components/tabs/Tab.vue')['default'] + Tabs: typeof import('./src/components/tabs/Tabs.vue')['default'] + TextField: typeof import('./src/components/form/TextField.vue')['default'] + } +} diff --git a/web/package.json b/web/package.json index f7cdfe7ea..f15484b9e 100644 --- a/web/package.json +++ b/web/package.json @@ -17,51 +17,51 @@ "test": "echo 'No tests configured' && exit 0" }, "dependencies": { - "@intlify/vite-plugin-vue-i18n": "^3.4.0", - "@kyvg/vue3-notification": "2.3.4", - "@meforma/vue-toaster": "1.2.2", + "@intlify/vite-plugin-vue-i18n": "^6.0.0", + "@kyvg/vue3-notification": "^2.3.6", + "@meforma/vue-toaster": "^1.3.0", "ansi_up": "^5.1.0", - "dayjs": "1.10.7", - "floating-vue": "2.0.0-beta.5", - "fuse.js": "6.4.6", - "humanize-duration": "3.27.0", - "javascript-time-ago": "2.3.10", - "lodash": "4.17.21", - "node-emoji": "1.11.0", - "pinia": "2.0.0", - "vue": "v3.2.20", - "vue-i18n": "9", - "vue-router": "4.0.10" + "dayjs": "^1.11.4", + "floating-vue": "^2.0.0-beta.19", + "fuse.js": "^6.6.2", + "humanize-duration": "^3.27.2", + "javascript-time-ago": "^2.5.7", + "lodash": "^4.17.21", + "node-emoji": "^1.11.0", + "pinia": "^2.0.17", + "vue": "^3.2.37", + "vue-i18n": "^9.2.2", + "vue-router": "^4.1.3" }, "devDependencies": { - "@iconify/json": "1.1.421", - "@types/humanize-duration": "3.27.0", - "@types/javascript-time-ago": "2.0.3", - "@types/lodash": "4.14.179", - "@types/node": "16.11.6", - "@types/node-emoji": "1.8.1", - "@typescript-eslint/eslint-plugin": "5.6.0", - "@typescript-eslint/parser": "5.6.0", - "@vitejs/plugin-vue": "1.9.4", - "@vue/compiler-sfc": "3.2.20", - "eslint": "7.32.0", - "eslint-config-airbnb-base": "15.0.0", - "eslint-config-airbnb-typescript": "16.1.0", - "eslint-config-prettier": "8.3.0", - "eslint-plugin-import": "2.25.3", - "eslint-plugin-prettier": "4.0.0", - "eslint-plugin-promise": "5.1.1", - "eslint-plugin-simple-import-sort": "7.0.0", - "eslint-plugin-vue": "7.18.0", - "eslint-plugin-vue-scoped-css": "1.3.0", - "prettier": "2.4.1", + "@iconify/json": "^2.1.88", + "@types/humanize-duration": "^3.27.1", + "@types/javascript-time-ago": "^2.0.3", + "@types/lodash": "^4.14.182", + "@types/node": "^16.11.6", + "@types/node-emoji": "^1.8.1", + "@typescript-eslint/eslint-plugin": "^5.33.0", + "@typescript-eslint/parser": "^5.33.0", + "@vitejs/plugin-vue": "^3.0.1", + "@vue/compiler-sfc": "^3.2.37", + "eslint": "^8.21.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.0.0", + "eslint-plugin-simple-import-sort": "^7.0.0", + "eslint-plugin-vue": "^9.3.0", + "eslint-plugin-vue-scoped-css": "^2.2.0", + "prettier": "^2.7.1", "typescript": "4.4.4", - "unplugin-icons": "0.12.17", - "unplugin-vue-components": "0.17.0", - "vite": "2.6.13", - "vite-plugin-windicss": "1.4.12", - "vite-svg-loader": "3.0.0", - "vue-tsc": "0.28.10", - "windicss": "3.2.0" + "unplugin-icons": "^0.14.8", + "unplugin-vue-components": "^0.22.3", + "vite": "^3.0.4", + "vite-plugin-windicss": "^1.8.7", + "vite-svg-loader": "^3.4.0", + "vue-tsc": "^0.39.5", + "windicss": "^3.5.6" } } diff --git a/web/src/components/atomic/Button.vue b/web/src/components/atomic/Button.vue index 7728deb47..5007878a7 100644 --- a/web/src/components/atomic/Button.vue +++ b/web/src/components/atomic/Button.vue @@ -1,22 +1,7 @@