diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js index d3f3cb74..3f74e029 100644 --- a/frontend/.eslintrc.js +++ b/frontend/.eslintrc.js @@ -15,7 +15,7 @@ module.exports = { "plugin:import/recommended", "plugin:import/typescript", "@vue/typescript/recommended", - '@nuxtjs/eslint-config-typescript', + "@nuxtjs/eslint-config-typescript", "plugin:eslint-comments/recommended", "prettier", ], diff --git a/frontend/.husky/pre-commit b/frontend/.husky/pre-commit new file mode 100755 index 00000000..e1d8e974 --- /dev/null +++ b/frontend/.husky/pre-commit @@ -0,0 +1,6 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +cd frontend +pnpm prettier --write src/types/generated/**.* +pnpm lint-staged diff --git a/frontend/nuxt.config.ts b/frontend/nuxt.config.ts index 2ef6faa1..e1c4c77b 100644 --- a/frontend/nuxt.config.ts +++ b/frontend/nuxt.config.ts @@ -1,5 +1,5 @@ -import { defineNuxtConfig } from "nuxt"; import path from "node:path"; +import { defineNuxtConfig } from "nuxt"; import VueI18n from "@intlify/vite-plugin-vue-i18n"; import IconsResolver from "unplugin-icons/resolver"; import Icons from "unplugin-icons/vite"; @@ -15,6 +15,9 @@ const signupDisabled = process.env.signupDisabled || false; // https://v3.nuxtjs.org/api/configuration/nuxt.config export default defineNuxtConfig({ + imports: { + autoImport: false, + }, srcDir: "src", runtimeConfig: { kratos, diff --git a/frontend/package.json b/frontend/package.json index 3e4e5de2..d2a50a2b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,14 +9,21 @@ "generate": "nuxt generate", "preview": "nuxt preview", "previewBuild": "nuxt build && nuxt preview", - "lint:eslint": "eslint --ext \".js,.vue,.ts,.json,.html\" --ignore-path .gitignore --fix .", - "lint:prettier": "prettier -w ." + "lint:eslint": "eslint --ext \".js,.vue,.ts,.html\" --ignore-path .gitignore --fix .", + "lint:prettier": "prettier -w .", + "prepare": "cd .. && husky install frontend/.husky" + }, + "lint-staged": { + "*.{ts,js,vue,html}": [ + "prettier -c", + "eslint" + ] }, "devDependencies": { "@iconify-json/mdi": "1.1.34", "@intlify/vite-plugin-vue-i18n": "6.0.3", "@nuxtjs-alt/proxy": "2.0.4", - "@nuxtjs/eslint-config-typescript": "11.0.0", + "@nuxtjs/eslint-config-typescript": "12.0.0", "@types/debug": "4.1.7", "@types/nprogress": "0.2.0", "@types/prettier": "2.7.1", @@ -28,6 +35,8 @@ "eslint-plugin-import": "2.26.0", "eslint-plugin-unicorn": "44.0.2", "eslint-plugin-vue": "9.7.0", + "husky": "8.0.2", + "lint-staged": "13.0.3", "nuxt": "3.0.0-rc.13", "nuxt-windicss": "2.5.3", "pnpm": "7.14.2", @@ -63,5 +72,10 @@ "vue-advanced-cropper": "2.8.6", "vue-i18n": "9.2.2", "vue3-popper": "1.5.0" + }, + "pnpm": { + "overrides": { + "axios": "0.27.2" + } } } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index dcfc233c..9cd31aad 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -1,11 +1,14 @@ lockfileVersion: 5.4 +overrides: + axios: 0.27.2 + specifiers: '@headlessui/vue': 1.7.4 '@iconify-json/mdi': 1.1.34 '@intlify/vite-plugin-vue-i18n': 6.0.3 '@nuxtjs-alt/proxy': 2.0.4 - '@nuxtjs/eslint-config-typescript': 11.0.0 + '@nuxtjs/eslint-config-typescript': 12.0.0 '@ory/hydra-client': 1.11.8 '@ory/kratos-client': 0.10.1 '@pinia/nuxt': 0.4.3 @@ -29,6 +32,8 @@ specifiers: eslint-plugin-unicorn: 44.0.2 eslint-plugin-vue: 9.7.0 filesize: 10.0.5 + husky: 8.0.2 + lint-staged: 13.0.3 nprogress: 0.2.0 nuxt: 3.0.0-rc.13 nuxt-windicss: 2.5.3 @@ -75,7 +80,7 @@ devDependencies: '@iconify-json/mdi': 1.1.34 '@intlify/vite-plugin-vue-i18n': 6.0.3_vite@2.9.15+vue-i18n@9.2.2 '@nuxtjs-alt/proxy': 2.0.4_debug@4.3.4 - '@nuxtjs/eslint-config-typescript': 11.0.0_rmayb2veg2btbq6mbmnyivgasy + '@nuxtjs/eslint-config-typescript': 12.0.0_rmayb2veg2btbq6mbmnyivgasy '@types/debug': 4.1.7 '@types/nprogress': 0.2.0 '@types/prettier': 2.7.1 @@ -87,6 +92,8 @@ devDependencies: eslint-plugin-import: 2.26.0_eslint@8.27.0 eslint-plugin-unicorn: 44.0.2_eslint@8.27.0 eslint-plugin-vue: 9.7.0_eslint@8.27.0 + husky: 8.0.2 + lint-staged: 13.0.3 nuxt: 3.0.0-rc.13_24ytyglkn5n7wnefdc54ie2x4q nuxt-windicss: 2.5.3_vite@2.9.15 pnpm: 7.14.2 @@ -555,8 +562,8 @@ packages: vue-i18n: optional: true dependencies: - '@intlify/message-compiler': 9.3.0-beta.6 - '@intlify/shared': 9.3.0-beta.6 + '@intlify/message-compiler': 9.3.0-beta.8 + '@intlify/shared': 9.3.0-beta.8 jsonc-eslint-parser: 1.4.1 source-map: 0.6.1 vue-i18n: 9.2.2_vue@3.2.41 @@ -585,11 +592,11 @@ packages: '@intlify/shared': 9.2.2 source-map: 0.6.1 - /@intlify/message-compiler/9.3.0-beta.6: - resolution: {integrity: sha512-3PJqRJoqvFHExA9DCkf7fZYKbvYne1tYQ0fptJAhUOZsELarh8wr4aPLKWCkQSRuutdrtZ/n5CcPgJgUmVthDw==} + /@intlify/message-compiler/9.3.0-beta.8: + resolution: {integrity: sha512-iwFqsUonpFBRTlpOoI6xRrE5d0jdR4yudkiu0q5d9T7lKrs6S0nwjQfBkANA8Esz1Wy0cjqWp0Qj0j9YZ75aZQ==} engines: {node: '>= 14'} dependencies: - '@intlify/shared': 9.3.0-beta.6 + '@intlify/shared': 9.3.0-beta.8 source-map: 0.6.1 dev: true @@ -597,8 +604,8 @@ packages: resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==} engines: {node: '>= 14'} - /@intlify/shared/9.3.0-beta.6: - resolution: {integrity: sha512-ITA1R4tvJYwZXT5x6QCSwxcwQ4dU52zrzVm/EUbgsp8oWzYS1xexBrxyNM80PSQudYvL2rvcZJKQ7yBh7b0LkQ==} + /@intlify/shared/9.3.0-beta.8: + resolution: {integrity: sha512-hF81ExYPVTYH/5xCZuXjMJb8G5EH1owUfij3oIPydJao5RcLSWlol8jGgR6GZpG1mdYW9rX965pqnyQLkqoV6A==} engines: {node: '>= 14'} dev: true @@ -618,7 +625,7 @@ packages: optional: true dependencies: '@intlify/bundle-utils': 3.2.1_vue-i18n@9.2.2 - '@intlify/shared': 9.3.0-beta.6 + '@intlify/shared': 9.3.0-beta.8 '@rollup/pluginutils': 4.2.1 debug: 4.3.4 fast-glob: 3.2.12 @@ -964,36 +971,38 @@ packages: - supports-color dev: true - /@nuxtjs/eslint-config-typescript/11.0.0_rmayb2veg2btbq6mbmnyivgasy: - resolution: {integrity: sha512-hmFjGtXT524ql8eTbK8BaRkamcXB6Z8YOW8nSQhosTP6oBw9WtOFUeWr7holyE278UhOmx+wDFG90BnyM9D+UA==} + /@nuxtjs/eslint-config-typescript/12.0.0_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-HJR0ho5MYuOCFjkL+eMX/VXbUwy36J12DUMVy+dj3Qz1GYHwX92Saxap3urFzr8oPkzzFiuOknDivfCeRBWakg==} peerDependencies: eslint: ^8.23.0 dependencies: - '@nuxtjs/eslint-config': 11.0.0_ankxupw42u6sowqa4gjcxemuni - '@typescript-eslint/eslint-plugin': 5.36.1_ptjtm5ueew7d66dpdptn6han3m - '@typescript-eslint/parser': 5.36.1_rmayb2veg2btbq6mbmnyivgasy + '@nuxtjs/eslint-config': 12.0.0_bbzxof3vtngyannf3l4jlcflvy + '@typescript-eslint/eslint-plugin': 5.43.0_yy4vf4gcvxiubmg7fqa55dqe2i + '@typescript-eslint/parser': 5.43.0_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 - eslint-import-resolver-typescript: 3.5.0_dcpv4nbdr5ks2h5677xdltrk6e - eslint-plugin-import: 2.26.0_ankxupw42u6sowqa4gjcxemuni + eslint-import-resolver-typescript: 3.5.2_dcpv4nbdr5ks2h5677xdltrk6e + eslint-plugin-import: 2.26.0_bbzxof3vtngyannf3l4jlcflvy + eslint-plugin-vue: 9.7.0_eslint@8.27.0 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color - typescript dev: true - /@nuxtjs/eslint-config/11.0.0_ankxupw42u6sowqa4gjcxemuni: - resolution: {integrity: sha512-o4zFOpU8gJgwrC/gLE7c2E0XEjkv2fEixCGG1y+dZYzBPyzTorkQmfxskSF3WRXcZkpkS9uUYlRkeOSdYB7z0w==} + /@nuxtjs/eslint-config/12.0.0_bbzxof3vtngyannf3l4jlcflvy: + resolution: {integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg==} peerDependencies: eslint: ^8.23.0 dependencies: eslint: 8.27.0 - eslint-config-standard: 17.0.0_yqvjeq2xzul43p26zlvfoiu3rm - eslint-plugin-import: 2.26.0_ankxupw42u6sowqa4gjcxemuni - eslint-plugin-n: 15.2.5_eslint@8.27.0 + eslint-config-standard: 17.0.0_qmmcbu32ybj7ict4ieqqyvwr3m + eslint-plugin-import: 2.26.0_bbzxof3vtngyannf3l4jlcflvy + eslint-plugin-n: 15.5.1_eslint@8.27.0 eslint-plugin-node: 11.1.0_eslint@8.27.0 - eslint-plugin-promise: 6.0.1_eslint@8.27.0 - eslint-plugin-unicorn: 43.0.2_eslint@8.27.0 + eslint-plugin-promise: 6.1.1_eslint@8.27.0 + eslint-plugin-unicorn: 44.0.2_eslint@8.27.0 eslint-plugin-vue: 9.7.0_eslint@8.27.0 + local-pkg: 0.4.2 transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-typescript @@ -1004,7 +1013,7 @@ packages: /@ory/hydra-client/1.11.8_debug@4.3.4: resolution: {integrity: sha512-fVTPjB/JWUrsI1uGnXf0eiYDClnH9fepGmJ+z1eg6b0EH5AQoaNc7nBU9QpEj/8pQjYy0p5hWEvOXGHWo9fJtw==} dependencies: - axios: 0.21.4_debug@4.3.4 + axios: 0.27.2_debug@4.3.4 transitivePeerDependencies: - debug dev: false @@ -1012,7 +1021,7 @@ packages: /@ory/kratos-client/0.10.1_debug@4.3.4: resolution: {integrity: sha512-WfoEW1HKeKUkG+57oShb6D3xENM3DpRbUxvVxbPZkJUKzFlXpBzbX71k2oQ6ajv6cy0ULVEKFLNcHpAoGjraNA==} dependencies: - axios: 0.21.4_debug@4.3.4 + axios: 0.27.2_debug@4.3.4 transitivePeerDependencies: - debug dev: false @@ -1256,6 +1265,10 @@ packages: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true + /@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + /@types/web-bluetooth/0.0.16: resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} @@ -1286,6 +1299,33 @@ packages: - supports-color dev: true + /@typescript-eslint/eslint-plugin/5.43.0_yy4vf4gcvxiubmg7fqa55dqe2i: + resolution: {integrity: sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.43.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/type-utils': 5.43.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/utils': 5.43.0_rmayb2veg2btbq6mbmnyivgasy + debug: 4.3.4 + eslint: 8.27.0 + ignore: 5.2.0 + natural-compare-lite: 1.4.0 + regexpp: 3.2.0 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser/5.36.1_rmayb2veg2btbq6mbmnyivgasy: resolution: {integrity: sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1306,6 +1346,26 @@ packages: - supports-color dev: true + /@typescript-eslint/parser/5.43.0_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.8.4 + debug: 4.3.4 + eslint: 8.27.0 + typescript: 4.8.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager/5.36.1: resolution: {integrity: sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1314,6 +1374,14 @@ packages: '@typescript-eslint/visitor-keys': 5.36.1 dev: true + /@typescript-eslint/scope-manager/5.43.0: + resolution: {integrity: sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/visitor-keys': 5.43.0 + dev: true + /@typescript-eslint/type-utils/5.36.1_rmayb2veg2btbq6mbmnyivgasy: resolution: {integrity: sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1334,11 +1402,36 @@ packages: - supports-color dev: true + /@typescript-eslint/type-utils/5.43.0_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.8.4 + '@typescript-eslint/utils': 5.43.0_rmayb2veg2btbq6mbmnyivgasy + debug: 4.3.4 + eslint: 8.27.0 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/types/5.36.1: resolution: {integrity: sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@typescript-eslint/types/5.43.0: + resolution: {integrity: sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@typescript-eslint/typescript-estree/5.36.1_typescript@4.8.4: resolution: {integrity: sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1360,6 +1453,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree/5.43.0_typescript@4.8.4: + resolution: {integrity: sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/visitor-keys': 5.43.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils/5.36.1_rmayb2veg2btbq6mbmnyivgasy: resolution: {integrity: sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1378,6 +1492,26 @@ packages: - typescript dev: true + /@typescript-eslint/utils/5.43.0_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.8.4 + eslint: 8.27.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.27.0 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys/5.36.1: resolution: {integrity: sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1386,6 +1520,14 @@ packages: eslint-visitor-keys: 3.3.0 dev: true + /@typescript-eslint/visitor-keys/5.43.0: + resolution: {integrity: sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.43.0 + eslint-visitor-keys: 3.3.0 + dev: true + /@vercel/nft/0.22.1: resolution: {integrity: sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw==} hasBin: true @@ -1790,6 +1932,14 @@ packages: - supports-color dev: true + /aggregate-error/3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + /ajv/6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -1923,6 +2073,11 @@ packages: es-shim-unscopables: 1.0.0 dev: true + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + /async-sema/3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: true @@ -1951,14 +2106,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /axios/0.21.4_debug@4.3.4: - resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} - dependencies: - follow-redirects: 1.15.1_debug@4.3.4 - transitivePeerDependencies: - - debug - dev: false - /axios/0.27.2_debug@4.3.4: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: @@ -2215,6 +2362,18 @@ packages: escape-string-regexp: 1.0.5 dev: true + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + /cli-cursor/4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2227,6 +2386,22 @@ packages: engines: {node: '>=6'} dev: true + /cli-truncate/2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate/3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + /cli-width/4.0.0: resolution: {integrity: sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==} engines: {node: '>= 12'} @@ -2312,6 +2487,11 @@ packages: engines: {node: '>= 12'} dev: true + /commander/9.4.1: + resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} + engines: {node: ^12.20.0 || >=14} + dev: true + /commondir/1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true @@ -3278,7 +3458,7 @@ packages: eslint: 8.27.0 dev: true - /eslint-config-standard/17.0.0_yqvjeq2xzul43p26zlvfoiu3rm: + /eslint-config-standard/17.0.0_qmmcbu32ybj7ict4ieqqyvwr3m: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -3287,9 +3467,9 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.27.0 - eslint-plugin-import: 2.26.0_ankxupw42u6sowqa4gjcxemuni - eslint-plugin-n: 15.2.5_eslint@8.27.0 - eslint-plugin-promise: 6.0.1_eslint@8.27.0 + eslint-plugin-import: 2.26.0_bbzxof3vtngyannf3l4jlcflvy + eslint-plugin-n: 15.5.1_eslint@8.27.0 + eslint-plugin-promise: 6.1.1_eslint@8.27.0 dev: true /eslint-import-resolver-alias/1.1.2_fkfqfehjtk7sk2efaqbgxsuasa: @@ -3310,9 +3490,9 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript/3.5.0_dcpv4nbdr5ks2h5677xdltrk6e: - resolution: {integrity: sha512-DEfpfuk+O/T5e9HBZOxocmwMuUGkvQQd5WRiMJF9kKNT9amByqOyGlWoAZAQiv0SZSy4GMtG1clmnvQA/RzA0A==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + /eslint-import-resolver-typescript/3.5.2_dcpv4nbdr5ks2h5677xdltrk6e: + resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' @@ -3320,7 +3500,7 @@ packages: debug: 4.3.4 enhanced-resolve: 5.10.0 eslint: 8.27.0 - eslint-plugin-import: 2.26.0_ankxupw42u6sowqa4gjcxemuni + eslint-plugin-import: 2.26.0_bbzxof3vtngyannf3l4jlcflvy get-tsconfig: 4.2.0 globby: 13.1.2 is-core-module: 2.10.0 @@ -3330,7 +3510,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_hzyee272oejuypf7pxzdrrmskq: + /eslint-module-utils/2.7.4_algk2ee5wzunqscd2r3nujqfhi: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -3351,14 +3531,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: + '@typescript-eslint/parser': 5.43.0_rmayb2veg2btbq6mbmnyivgasy debug: 3.2.7 eslint: 8.27.0 eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 3.5.2_dcpv4nbdr5ks2h5677xdltrk6e transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.7.4_tp5imgidbcekhicqfwzdvt4zwa: + /eslint-module-utils/2.7.4_hzyee272oejuypf7pxzdrrmskq: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -3379,11 +3561,9 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.36.1_rmayb2veg2btbq6mbmnyivgasy debug: 3.2.7 eslint: 8.27.0 eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.5.0_dcpv4nbdr5ks2h5677xdltrk6e transitivePeerDependencies: - supports-color dev: true @@ -3421,7 +3601,7 @@ packages: ignore: 5.2.0 dev: true - /eslint-plugin-import/2.26.0_ankxupw42u6sowqa4gjcxemuni: + /eslint-plugin-import/2.26.0_bbzxof3vtngyannf3l4jlcflvy: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -3431,14 +3611,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.36.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/parser': 5.43.0_rmayb2veg2btbq6mbmnyivgasy array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.27.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_tp5imgidbcekhicqfwzdvt4zwa + eslint-module-utils: 2.7.4_algk2ee5wzunqscd2r3nujqfhi has: 1.0.3 is-core-module: 2.10.0 is-glob: 4.0.3 @@ -3482,8 +3662,8 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.2.5_eslint@8.27.0: - resolution: {integrity: sha512-8+BYsqiyZfpu6NXmdLOXVUfk8IocpCjpd8nMRRH0A9ulrcemhb2VI9RSJMEy5udx++A/YcVPD11zT8hpFq368g==} + /eslint-plugin-n/15.5.1_eslint@8.27.0: + resolution: {integrity: sha512-kAd+xhZm7brHoFLzKLB7/FGRFJNg/srmv67mqb7tto22rpr4wv/LV6RuXzAfv3jbab7+k1wi42PsIhGviywaaw==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' @@ -3493,7 +3673,7 @@ packages: eslint-plugin-es: 4.1.0_eslint@8.27.0 eslint-utils: 3.0.0_eslint@8.27.0 ignore: 5.2.0 - is-core-module: 2.10.0 + is-core-module: 2.11.0 minimatch: 3.1.2 resolve: 1.22.1 semver: 7.3.8 @@ -3514,8 +3694,8 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-promise/6.0.1_eslint@8.27.0: - resolution: {integrity: sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==} + /eslint-plugin-promise/6.1.1_eslint@8.27.0: + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3523,29 +3703,6 @@ packages: eslint: 8.27.0 dev: true - /eslint-plugin-unicorn/43.0.2_eslint@8.27.0: - resolution: {integrity: sha512-DtqZ5mf/GMlfWoz1abIjq5jZfaFuHzGBZYIeuJfEoKKGWRHr2JiJR+ea+BF7Wx2N1PPRoT/2fwgiK1NnmNE3Hg==} - engines: {node: '>=14.18'} - peerDependencies: - eslint: '>=8.18.0' - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - ci-info: 3.5.0 - clean-regexp: 1.0.0 - eslint: 8.27.0 - eslint-utils: 3.0.0_eslint@8.27.0 - esquery: 1.4.0 - indent-string: 4.0.0 - is-builtin-module: 3.2.0 - lodash: 4.17.21 - pluralize: 8.0.0 - read-pkg-up: 7.0.1 - regexp-tree: 0.1.24 - safe-regex: 2.1.1 - semver: 7.3.8 - strip-indent: 3.0.0 - dev: true - /eslint-plugin-unicorn/44.0.2_eslint@8.27.0: resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} engines: {node: '>=14.18'} @@ -3764,6 +3921,21 @@ packages: strip-final-newline: 2.0.0 dev: true + /execa/6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + /external-editor/3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -4298,6 +4470,17 @@ packages: engines: {node: '>=10.17.0'} dev: true + /human-signals/3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + dev: true + + /husky/8.0.2: + resolution: {integrity: sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==} + engines: {node: '>=14'} + hasBin: true + dev: true + /iconv-lite/0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -4443,6 +4626,12 @@ packages: has: 1.0.3 dev: true + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + dev: true + /is-date-object/1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -4471,6 +4660,11 @@ packages: engines: {node: '>=8'} dev: true + /is-fullwidth-code-point/4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -4547,6 +4741,11 @@ packages: engines: {node: '>=8'} dev: true + /is-stream/3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /is-string/1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -4691,6 +4890,11 @@ packages: type-check: 0.4.0 dev: true + /lilconfig/2.0.5: + resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} + engines: {node: '>=10'} + dev: true + /lilconfig/2.0.6: resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} @@ -4700,6 +4904,29 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true + /lint-staged/13.0.3: + resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.19 + commander: 9.4.1 + debug: 4.3.4 + execa: 6.1.0 + lilconfig: 2.0.5 + listr2: 4.0.5 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.2 + pidtree: 0.6.0 + string-argv: 0.3.1 + yaml: 2.1.3 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + /listhen/0.3.5: resolution: {integrity: sha512-suyt79hNmCFeBIyftcLqLPfYiXeB795gSUWOJT7nspl2IvREY0Q9xvchLhekxvQ0KiOPvWoyALnc9Mxoelm0Pw==} dependencies: @@ -4713,6 +4940,25 @@ packages: ufo: 0.8.6 dev: true + /listr2/4.0.5: + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} + engines: {node: '>=12'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.19 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.5.7 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + /loader-utils/2.0.3: resolution: {integrity: sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==} engines: {node: '>=8.9.0'} @@ -4810,6 +5056,16 @@ packages: is-unicode-supported: 1.2.0 dev: true + /log-update/4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + /lru-cache/6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -4895,6 +5151,11 @@ packages: engines: {node: '>=6'} dev: true + /mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -5009,6 +5270,10 @@ packages: hasBin: true dev: true + /natural-compare-lite/1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -5165,6 +5430,13 @@ packages: path-key: 3.1.1 dev: true + /npm-run-path/5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + /npmlog/5.0.1: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} dependencies: @@ -5355,6 +5627,13 @@ packages: mimic-fn: 2.1.0 dev: true + /onetime/6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + /open/8.4.0: resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} engines: {node: '>=12'} @@ -5424,6 +5703,13 @@ packages: p-limit: 3.1.0 dev: true + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -5499,6 +5785,11 @@ packages: engines: {node: '>=8'} dev: true + /path-key/4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true @@ -5525,6 +5816,12 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + /pidtree/0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + /pify/2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -6098,6 +6395,14 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + /restore-cursor/4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6110,6 +6415,10 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true @@ -6348,6 +6657,32 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} + /slice-ansi/3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.1.0 + is-fullwidth-code-point: 4.0.0 + dev: true + /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -6420,6 +6755,11 @@ packages: engines: {node: '>=10.0.0'} dev: true + /string-argv/0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + dev: true + /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -6489,6 +6829,11 @@ packages: engines: {node: '>=6'} dev: true + /strip-final-newline/3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + /strip-indent/3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -7372,6 +7717,15 @@ packages: engines: {node: '>=0.10.0'} dev: true + /wrap-ansi/6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -7442,6 +7796,11 @@ packages: engines: {node: '>= 6'} dev: true + /yaml/2.1.3: + resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==} + engines: {node: '>= 14'} + dev: true + /yargs-parser/21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} diff --git a/frontend/src/app.vue b/frontend/src/app.vue index 614c7090..cbf84eec 100644 --- a/frontend/src/app.vue +++ b/frontend/src/app.vue @@ -9,6 +9,7 @@ import "./lib/styles/main.css"; import { useSettingsStore } from "~/store/useSettingsStore"; import { useAuthStore } from "~/store/useAuthStore"; import { settingsLog } from "~/lib/composables/useLog"; +import { useHead } from "#imports"; const authStore = useAuthStore(); const settingsStore = useSettingsStore(); diff --git a/frontend/src/components/Dropdown.vue b/frontend/src/components/Dropdown.vue deleted file mode 100644 index d06ba330..00000000 --- a/frontend/src/components/Dropdown.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - diff --git a/frontend/src/components/Header.vue b/frontend/src/components/Header.vue index f3296bbb..64449f78 100644 --- a/frontend/src/components/Header.vue +++ b/frontend/src/components/Header.vue @@ -1,6 +1,7 @@ diff --git a/frontend/src/components/form/FormContainer.vue b/frontend/src/components/form/FormContainer.vue index ab87e2b0..6064fcd1 100644 --- a/frontend/src/components/form/FormContainer.vue +++ b/frontend/src/components/form/FormContainer.vue @@ -50,7 +50,7 @@ const selectedTab = computed(() => { const noTab = computed(() => { return props.nodes.filter((n) => { - for (let tab of props.tabs) { + for (const tab of props.tabs) { if (matches(n, tab)) { return false; } @@ -61,7 +61,7 @@ const noTab = computed(() => { function matches(node: UiNode, tab: FormTab, includeCsrf = true) { if (!tab) return false; - const isCsrf = node.attributes.name === "csrf_token"; + const isCsrf = "name" in node.attributes && node.attributes.name === "csrf_token"; if (isCsrf) { return includeCsrf; } @@ -69,7 +69,8 @@ function matches(node: UiNode, tab: FormTab, includeCsrf = true) { } const filteredNodes = computed(() => { - return props.nodes.filter((n) => matches(n, selectedTab.value)); + const selected = selectedTab.value; + return selected ? props.nodes.filter((n) => matches(n, selected)) : []; }); const filteredTabs = computed(() => { diff --git a/frontend/src/components/form/FormScript.vue b/frontend/src/components/form/FormScript.vue index dedd9065..aee00815 100644 --- a/frontend/src/components/form/FormScript.vue +++ b/frontend/src/components/form/FormScript.vue @@ -1,7 +1,7 @@