diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 3dfa7e2..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,123 +0,0 @@ -const kongponentUtilityClasses = require('./kongponent-utility-classes.cjs') - -module.exports = { - root: true, - parser: 'vue-eslint-parser', - parserOptions: { - parser: '@typescript-eslint/parser', - sourceType: 'module', - }, - env: { - browser: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:vue/vue3-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:vuejs-accessibility/recommended', - 'standard', - ], - plugins: [ - '@typescript-eslint', - 'vuejs-accessibility', - 'import', - ], - settings: { - 'import/resolver': { - alias: { - map: [ - ['@', './src'], - ], - extensions: ['.js', '.ts', '.vue'], - }, - }, - }, - // add your custom rules here - rules: { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // error on non-newlines between object properties - 'object-property-newline': 'error', - // disallow lines between class members - 'lines-between-class-members': ['error', 'always'], - // disallow blank lines between certain statements - 'padding-line-between-statements': [ - 'error', - { blankLine: 'always', prev: ['block', 'block-like'], next: '*' }, - { blankLine: 'always', prev: '*', next: 'return' }, - { blankLine: 'always', prev: ['const', 'let', 'var'], next: '*' }, - { blankLine: 'any', prev: ['const', 'let', 'var'], next: ['const', 'let', 'var', 'if'] }, - { blankLine: 'always', prev: 'directive', next: '*' }, - { blankLine: 'any', prev: 'directive', next: 'directive' }, - ], - // error on non-curly statements - 'curly': 'error', - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - // we accept `foo'bar` but not accpet `foobar` - 'quotes': ['error', 'single', { avoidEscape: true, allowTemplateLiterals: true }], - 'quote-props': ['error', 'consistent-as-needed'], - // disable no-unused-expressions since unit test will use some expressions like `to.be.true` - 'no-unused-expressions': 'off', - 'indent': ['error', 2, { offsetTernaryExpressions: true, SwitchCase: 1 }], - // disable this rule since it may conflict with 'export default' in vue single file component - 'import/first': 'off', - 'import/extensions': ['error', 'ignorePackages', { ts: 'never', js: 'never', vue: 'always' }], - // disable this rule since it may conflict with some unit tests - 'prefer-promise-reject-errors': 'off', - // trailing comma is beneficial for git diff - 'comma-dangle': ['error', { arrays: 'always-multiline', objects: 'always-multiline', imports: 'always-multiline', exports: 'always-multiline', functions: 'only-multiline' }], - // allow extra parens for readability - 'no-extra-parens': 'off', - '@typescript-eslint/no-extra-parens': 'off', - - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/camelcase': 'off', - 'camelcase': 'off', - '@typescript-eslint/no-var-requires': 'off', - '@typescript-eslint/no-empty-function': 'off', - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' }], - 'no-useless-constructor': 'off', - 'object-curly-spacing': ['error', 'always'], - 'object-curly-newline': ['error', { - ObjectExpression: { - consistent: true, - multiline: true, - }, - ObjectPattern: { - consistent: true, - multiline: true, - }, - ImportDeclaration: { - consistent: true, - multiline: true, - minProperties: 5, - }, - ExportDeclaration: { - consistent: true, - multiline: true, - minProperties: 5, - }, - }], - 'max-params': ['error', 4], - 'func-call-spacing': 'off', - '@typescript-eslint/func-call-spacing': 'error', - - // vue - 'vue/no-deprecated-dollar-listeners-api': 'error', - 'vue/no-deprecated-events-api': 'error', - 'vue/no-deprecated-v-on-native-modifier': 'error', - 'vue/no-restricted-class': ['error', '/^k-/', ...kongponentUtilityClasses], - - // a11y - 'vuejs-accessibility/label-has-for': 'off', - 'vuejs-accessibility/no-autofocus': 'off', - 'vuejs-accessibility/form-control-has-label': 'off', - 'vuejs-accessibility/click-events-have-key-events': 'off', - 'vuejs-accessibility/mouse-events-have-key-events': 'off', - 'vuejs-accessibility/no-static-element-interactions': 'off', - }, -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..b735042 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,48 @@ +import eslintKongUiConfig from '@kong/eslint-config-kong-ui' +import pluginVueA11y from 'eslint-plugin-vuejs-accessibility' +import playwright from 'eslint-plugin-playwright' +import kongponentsUtilityClasses from './kongponent-utility-classes.js' + +export default [ + ...eslintKongUiConfig, + ...pluginVueA11y.configs['flat/recommended'], + + { + files: ['**/*.js', '**/*.vue', '**/*.ts'], + rules: { + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '_', + }, + ], + + // Vue + 'vue/attributes-order': 'off', + 'vue/no-restricted-class': ['error', '/^k-/', ...kongponentsUtilityClasses], + + // a11y + 'vuejs-accessibility/label-has-for': 'off', + 'vuejs-accessibility/no-autofocus': 'off', + 'vuejs-accessibility/form-control-has-label': 'off', + 'vuejs-accessibility/click-events-have-key-events': 'off', + 'vuejs-accessibility/mouse-events-have-key-events': 'off', + 'vuejs-accessibility/no-static-element-interactions': 'off', + }, + }, + + // e2e tests + { + ...playwright.configs['flat/recommended'], + files: ['tests/playwright/**'], + rules: { + 'playwright/missing-playwright-await': 'error', + 'playwright/no-page-pause': 'error', + 'playwright/prefer-to-have-length': 'error', + 'playwright/valid-expect': 'error', + 'playwright/no-skipped-test': 'off', + 'playwright/no-force-option': 'off', + 'playwright/no-wait-for-timeout': 'off', + }, + }, +] diff --git a/kongponent-utility-classes.cjs b/kongponent-utility-classes.js similarity index 99% rename from kongponent-utility-classes.cjs rename to kongponent-utility-classes.js index 631bfb9..a582a48 100644 --- a/kongponent-utility-classes.cjs +++ b/kongponent-utility-classes.js @@ -1,6 +1,6 @@ // List of disallowed utility classes that are exported from Kongponents // These classes **must not** be used in this repository -module.exports = [ +export default [ 'type-xxxl', 'type-xxl', 'type-xl', diff --git a/package.json b/package.json index 86d85bd..dcd8272 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "playwright": "yarn --cwd tests/playwright run playwright", "preview": "vite build && vite preview", "lint": "yarn lint:eslint && yarn lint:vue && yarn lint:playwright && yarn lint:style", - "lint:eslint": "eslint --ext .js,.vue,.ts src tests/playwright", - "lint:eslint:fix": "eslint --fix --ext .js,.vue,.ts src tests/playwright", + "lint:eslint": "eslint src tests/playwright", + "lint:eslint:fix": "eslint --fix src tests/playwright", "lint:playwright": "tsc --noEmit --project tests/playwright/tsconfig.json --baseUrl tests/playwright", "lint:style": "stylelint --allow-empty-input 'src/**/*.{css,scss,sass,less,styl,vue}'", "lint:vue": "vue-tsc --noEmit", @@ -53,25 +53,18 @@ }, "devDependencies": { "@kong/design-tokens": "^1.13.2", + "@kong/eslint-config-kong-ui": "^1.1.0", "@playwright/test": "^1.44.1", "@types/lodash-es": "^4.17.12", "@types/marked": "^5.0.1", "@types/node": "^20.3.1", - "@typescript-eslint/eslint-plugin": "^6.13.0", - "@typescript-eslint/parser": "^6.13.0", "@vitejs/plugin-vue": "^5.0.4", "@vue/tsconfig": "^0.5.1", "autoprefixer": "^10.4.14", "bmp-js": "^0.1.0", "dotenv": "^16.0.1", - "eslint": "^8.54.0", - "eslint-config-standard": "^17.1.0", - "eslint-import-resolver-alias": "^1.1.2", - "eslint-plugin-import": "^2.29.0", - "eslint-plugin-n": "^16.3.1", + "eslint": "^9.5.0", "eslint-plugin-playwright": "^0.18.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-vue": "^9.25.0", "eslint-plugin-vuejs-accessibility": "^2.3.0", "husky": "^8.0.3", "lint-staged": "^13.2.2", @@ -87,7 +80,6 @@ "vite": "^5.2.11", "vite-plugin-html": "^3.2.2", "vite-plugin-monaco-editor": "^1.1.0", - "vue-eslint-parser": "^9.4.2", "vue-tsc": "^2.0.16" }, "browserslist": [ diff --git a/src/App.vue b/src/App.vue index fa0b337..68a9dcc 100644 --- a/src/App.vue +++ b/src/App.vue @@ -105,13 +105,13 @@ const sidebarItems = computed>(() => [ ...( isHybridMode.value ? [ - // { - // name: 'Data Plane Nodes', - // to: { name: 'data-plane-nodes' }, - // key: 'Data Plane Nodes', - // active: route.meta?.entity === 'data-plane-node', - // }, - ] + // { + // name: 'Data Plane Nodes', + // to: { name: 'data-plane-nodes' }, + // key: 'Data Plane Nodes', + // active: route.meta?.entity === 'data-plane-node', + // }, + ] : [] ), ]) diff --git a/src/composables/useI18n.ts b/src/composables/useI18n.ts index 2db94e3..a5ea22b 100644 --- a/src/composables/useI18n.ts +++ b/src/composables/useI18n.ts @@ -1,4 +1,4 @@ import { useI18n as i18n } from '@kong-ui-public/i18n' -import english from '@/locales/en.json' +import type english from '@/locales/en.json' export const useI18n = i18n diff --git a/src/config.ts b/src/config.ts index 2bb5730..3bad4e9 100644 --- a/src/config.ts +++ b/src/config.ts @@ -21,23 +21,23 @@ const getConfig = (key: string, defaultValue: T): T => { export const config = { - get ADMIN_GUI_URL () { + get ADMIN_GUI_URL() { return getConfig('ADMIN_GUI_URL', null) }, - get ADMIN_GUI_PATH () { + get ADMIN_GUI_PATH() { return getConfig('ADMIN_GUI_PATH', '/') }, - get ADMIN_API_PORT () { + get ADMIN_API_PORT() { return getConfig('ADMIN_API_PORT', 8001) }, - get ADMIN_API_SSL_PORT () { + get ADMIN_API_SSL_PORT() { return getConfig('ADMIN_API_SSL_PORT', 8444) }, - get ADMIN_API_URL () { + get ADMIN_API_URL() { const ADMIN_API_URL = getConfig('ADMIN_API_URL', null) if (ADMIN_API_URL) { return /^(https?:)?\/\//.test(ADMIN_API_URL) @@ -52,7 +52,7 @@ export const config = { return `${window.location.protocol}//${window.location.hostname}:${port}` }, - get ANONYMOUS_REPORTS () { + get ANONYMOUS_REPORTS() { return getConfig('ANONYMOUS_REPORTS', false) }, } diff --git a/src/pages/ca-certificates/Form.vue b/src/pages/ca-certificates/Form.vue index efe5139..127e244 100644 --- a/src/pages/ca-certificates/Form.vue +++ b/src/pages/ca-certificates/Form.vue @@ -33,13 +33,13 @@ const isEditing = computed(() => !!id.value) const routeOnCancel = useFormRedirectOnCancel( isEditing.value ? { name: 'ca-certificate-detail', params: { id: id.value } } - : { name: 'ca-certificate-list' } + : { name: 'ca-certificate-list' }, ) const routeOnUpdate = useFormRedirectOnUpdate( isEditing.value ? { name: 'ca-certificate-detail', params: { id: id.value } } - : { name: 'ca-certificate-list' } + : { name: 'ca-certificate-list' }, ) const caCertificateFormConfig = reactive({ diff --git a/src/pages/certificates/Form.vue b/src/pages/certificates/Form.vue index df6000c..d9e2849 100644 --- a/src/pages/certificates/Form.vue +++ b/src/pages/certificates/Form.vue @@ -33,13 +33,13 @@ const isEditing = computed(() => !!id.value) const routeOnCancel = useFormRedirectOnCancel( isEditing.value ? { name: 'certificate-detail', params: { id: id.value } } - : { name: 'certificate-list' } + : { name: 'certificate-list' }, ) const routeOnUpdate = useFormRedirectOnUpdate( isEditing.value ? { name: 'certificate-detail', params: { id: id.value } } - : { name: 'certificate-list' } + : { name: 'certificate-list' }, ) const certificateFormConfig = reactive({ diff --git a/src/pages/consumers/CredentialForm.vue b/src/pages/consumers/CredentialForm.vue index 55ffe54..dc6eb3e 100644 --- a/src/pages/consumers/CredentialForm.vue +++ b/src/pages/consumers/CredentialForm.vue @@ -37,7 +37,7 @@ const isEditing = computed(() => !!credentialId.value) const title = computed( () => isEditing.value ? t('entities.consumer-credential.edit.form.title', { type: credentialType.value }) - : t('entities.consumer-credential.create.form.title', { type: credentialType.value }) + : t('entities.consumer-credential.create.form.title', { type: credentialType.value }), ) const cancelRoute = computed(() => { diff --git a/src/pages/consumers/Form.vue b/src/pages/consumers/Form.vue index 335ea90..212ef5b 100644 --- a/src/pages/consumers/Form.vue +++ b/src/pages/consumers/Form.vue @@ -33,13 +33,13 @@ const isEditing = computed(() => !!id.value) const routeOnCancel = useFormRedirectOnCancel( isEditing.value ? { name: 'consumer-detail', params: { id: id.value } } - : { name: 'consumer-list' } + : { name: 'consumer-list' }, ) const routeOnUpdate = useFormRedirectOnUpdate( isEditing.value ? { name: 'consumer-detail', params: { id: id.value } } - : { name: 'consumer-list' } + : { name: 'consumer-list' }, ) const consumerFormConfig = reactive({ diff --git a/src/pages/data-plane-nodes/List.vue b/src/pages/data-plane-nodes/List.vue index 4b2f278..b25a51f 100644 --- a/src/pages/data-plane-nodes/List.vue +++ b/src/pages/data-plane-nodes/List.vue @@ -171,7 +171,8 @@ import { } from '@kong/design-tokens' import { ProgressIcon, InfoIcon, ChevronDownIcon, MoreIcon } from '@kong/icons' import type { FetcherParams } from '@kong-ui-public/entities-shared' -import { ChangeLogLevelModal, LogLevel, composables } from '@kong-ui-public/entities-data-plane-nodes' +import type { LogLevel } from '@kong-ui-public/entities-data-plane-nodes' +import { ChangeLogLevelModal, composables } from '@kong-ui-public/entities-data-plane-nodes' import { capitalize, formatDate } from '@/utils' import { apiService } from '@/services/apiService' import { useI18n } from '@/composables/useI18n' @@ -274,10 +275,10 @@ const fetcher = async (props: FetcherParams) => { data: visibleNodes.value, ...(data.offset ? { - pagination: { - offset: data.offset, - }, - } + pagination: { + offset: data.offset, + }, + } : null), } } catch (err) { diff --git a/src/pages/key-sets/Form.vue b/src/pages/key-sets/Form.vue index d784162..7d85613 100644 --- a/src/pages/key-sets/Form.vue +++ b/src/pages/key-sets/Form.vue @@ -33,13 +33,13 @@ const isEditing = computed(() => !!id.value) const routeOnCancel = useFormRedirectOnCancel( isEditing.value ? { name: 'key-set-detail', params: { id: id.value } } - : { name: 'key-set-list' } + : { name: 'key-set-list' }, ) const routeOnUpdate = useFormRedirectOnUpdate( isEditing.value ? { name: 'key-set-detail', params: { id: id.value } } - : { name: 'key-set-list' } + : { name: 'key-set-list' }, ) const formConfig = reactive({ diff --git a/src/pages/keys/Form.vue b/src/pages/keys/Form.vue index a4674db..7b04ce2 100644 --- a/src/pages/keys/Form.vue +++ b/src/pages/keys/Form.vue @@ -35,13 +35,13 @@ const isEditing = computed(() => !!id.value) const routeOnCancel = useFormRedirectOnCancel( isEditing.value ? { name: 'key-detail', params: { id: id.value } } - : { name: 'key-list' } + : { name: 'key-list' }, ) const routeOnUpdate = useFormRedirectOnUpdate( isEditing.value ? { name: 'key-detail', params: { id: id.value } } - : { name: 'key-list' } + : { name: 'key-list' }, ) const formConfig = reactive({ diff --git a/src/pages/overview/Overview.vue b/src/pages/overview/Overview.vue index f742588..3aaa717 100644 --- a/src/pages/overview/Overview.vue +++ b/src/pages/overview/Overview.vue @@ -141,32 +141,32 @@ const info = computed(() => { ...( config.value.database === 'postgres' ? [ - { - title: t('overview.info.datastore.title'), - items: [ - { - label: t('overview.info.datastore.type'), - value: config.value.database, - }, - { - label: t('overview.info.datastore.user'), - value: config.value.pg_user, - }, - { - label: t('overview.info.datastore.host'), - value: config.value.pg_host, - }, - { - label: t('overview.info.datastore.port'), - value: config.value.pg_port, - }, - { - label: t('overview.info.datastore.ssl'), - value: config.value.pg_ssl, - }, - ], - }, - ] + { + title: t('overview.info.datastore.title'), + items: [ + { + label: t('overview.info.datastore.type'), + value: config.value.database, + }, + { + label: t('overview.info.datastore.user'), + value: config.value.pg_user, + }, + { + label: t('overview.info.datastore.host'), + value: config.value.pg_host, + }, + { + label: t('overview.info.datastore.port'), + value: config.value.pg_port, + }, + { + label: t('overview.info.datastore.ssl'), + value: config.value.pg_ssl, + }, + ], + }, + ] : [] ), ] diff --git a/src/pages/routes/Form.vue b/src/pages/routes/Form.vue index a07f530..1539218 100644 --- a/src/pages/routes/Form.vue +++ b/src/pages/routes/Form.vue @@ -43,13 +43,13 @@ const isEditing = computed(() => !!id.value) const routeOnCancel = useFormRedirectOnCancel( isEditing.value ? { name: 'route-detail', params: { id: id.value } } - : { name: 'route-list' } + : { name: 'route-list' }, ) const routeOnUpdate = useFormRedirectOnUpdate( isEditing.value ? { name: 'route-detail', params: { id: id.value } } - : { name: 'route-list' } + : { name: 'route-list' }, ) const routeFormConfig = reactive({ diff --git a/src/pages/services/Form.vue b/src/pages/services/Form.vue index c0c9900..6ceb43a 100644 --- a/src/pages/services/Form.vue +++ b/src/pages/services/Form.vue @@ -33,13 +33,13 @@ const isEditing = computed(() => !!id.value) const routeOnCancel = useFormRedirectOnCancel( isEditing.value ? { name: 'service-detail', params: { id: id.value } } - : { name: 'service-list' } + : { name: 'service-list' }, ) const routeOnUpdate = useFormRedirectOnUpdate( isEditing.value ? { name: 'service-detail', params: { id: id.value } } - : { name: 'service-list' } + : { name: 'service-list' }, ) const serviceFormConfig = reactive({ diff --git a/src/pages/upstreams/Form.vue b/src/pages/upstreams/Form.vue index f46619b..4cef5c5 100644 --- a/src/pages/upstreams/Form.vue +++ b/src/pages/upstreams/Form.vue @@ -33,13 +33,13 @@ const isEditing = computed(() => !!id.value) const routeOnCancel = useFormRedirectOnCancel( isEditing.value ? { name: 'upstream-detail', params: { id: id.value } } - : { name: 'upstream-list' } + : { name: 'upstream-list' }, ) const routeOnUpdate = useFormRedirectOnUpdate( isEditing.value ? { name: 'upstream-detail', params: { id: id.value } } - : { name: 'upstream-list' } + : { name: 'upstream-list' }, ) const upstreamFormConfig = reactive({ diff --git a/src/pages/upstreams/TargetList.vue b/src/pages/upstreams/TargetList.vue index 373db92..c144675 100644 --- a/src/pages/upstreams/TargetList.vue +++ b/src/pages/upstreams/TargetList.vue @@ -44,7 +44,7 @@ const infoStore = useInfoStore() const { isHybridMode } = storeToRefs(infoStore) -// eslint-disable-next-line @typescript-eslint/no-explicit-any + const upstream = ref() const upstreamId = computed(() => (route.params.id as string) ?? '') @@ -101,8 +101,8 @@ const canMarkHealthyUnhealthy = computed( () => ( (a, b) => async () => a && b )( - !isHybridMode.value, isUpstreamUsingHealthchecks.value - ) + !isHybridMode.value, isUpstreamUsingHealthchecks.value, + ), ) const targetListConfig = reactive({ diff --git a/src/pages/vaults/Form.vue b/src/pages/vaults/Form.vue index 84428d3..9c42dd6 100644 --- a/src/pages/vaults/Form.vue +++ b/src/pages/vaults/Form.vue @@ -34,13 +34,13 @@ const isEditing = computed(() => !!id.value) const routeOnCancel = useFormRedirectOnCancel( isEditing.value ? { name: 'vault-detail', params: { id: id.value } } - : { name: 'vault-list' } + : { name: 'vault-list' }, ) const routeOnUpdate = useFormRedirectOnUpdate( isEditing.value ? { name: 'vault-detail', params: { id: id.value } } - : { name: 'vault-list' } + : { name: 'vault-list' }, ) const vaultFormConfig = reactive({ diff --git a/src/services/apiService.ts b/src/services/apiService.ts index 2783f3c..4976e22 100644 --- a/src/services/apiService.ts +++ b/src/services/apiService.ts @@ -9,55 +9,55 @@ const adminApiUrl = config.ADMIN_API_URL class ApiService { instance: AxiosInstance - constructor () { + constructor() { this.instance = axios.create({ timeout: 30000, }) } - getInfo () { + getInfo() { return this.instance.get(`${adminApiUrl}`) } // entity-specific methods - findAll (entity: string, params: Record) { + findAll(entity: string, params: Record) { return this.instance.get(`${adminApiUrl}/${entity}`, { params }) } - findRecord (entity: string, id: string) { + findRecord(entity: string, id: string) { return this.instance.get(`${adminApiUrl}/${entity}/${id}`) } - createRecord (entity: string, data: Record) { + createRecord(entity: string, data: Record) { return this.instance.post(`${adminApiUrl}/${entity}`, data) } - updateRecord (entity: string, id: string, data: Record) { + updateRecord(entity: string, id: string, data: Record) { return this.instance.patch(`${adminApiUrl}/${entity}/${id}`, data) } - deleteRecord (entity: string, id: string) { + deleteRecord(entity: string, id: string) { return this.instance.delete(`${adminApiUrl}/${entity}/${id}`) } // generic methods - get (url = '', config: AxiosRequestConfig = {}) { + get(url = '', config: AxiosRequestConfig = {}) { return this.instance.get(`${adminApiUrl}/${url}`, config) } - post (url = '', data?: Record, config: AxiosRequestConfig = {}) { + post(url = '', data?: Record, config: AxiosRequestConfig = {}) { return this.instance.post(`${adminApiUrl}/${url}`, data, config) } - put (url = '', data?: Record, config: AxiosRequestConfig = {}) { + put(url = '', data?: Record, config: AxiosRequestConfig = {}) { return this.instance.put(`${adminApiUrl}/${url}`, data, config) } - patch (url = '', data?: Record, config: AxiosRequestConfig = {}) { + patch(url = '', data?: Record, config: AxiosRequestConfig = {}) { return this.instance.patch(`${adminApiUrl}/${url}`, data, config) } - delete (url = '', config: AxiosRequestConfig = {}) { + delete(url = '', config: AxiosRequestConfig = {}) { return this.instance.delete(`${adminApiUrl}/${url}`, config) } } diff --git a/src/stores/info.ts b/src/stores/info.ts index 49cbb27..3c49bca 100644 --- a/src/stores/info.ts +++ b/src/stores/info.ts @@ -37,7 +37,7 @@ export const useInfoStore = defineStore('info', { }, actions: { - async getInfo (payload: AnyObject = { silent: true, force: false }) { + async getInfo(payload: AnyObject = { silent: true, force: false }) { const { silent = true, force = false } = payload // Return the info if it's already loaded unless force is true diff --git a/src/stores/types.ts b/src/stores/types.ts index 1165e23..c3e7bcc 100644 --- a/src/stores/types.ts +++ b/src/stores/types.ts @@ -1,6 +1,6 @@ import type { GatewayEdition } from '@/config' -// eslint-disable-next-line @typescript-eslint/no-explicit-any + export type AnyObject = Record export interface Info { diff --git a/tests/playwright/.eslintrc b/tests/playwright/.eslintrc deleted file mode 100644 index 9f77da9..0000000 --- a/tests/playwright/.eslintrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": ["../../.eslintrc.cjs"], - "plugins": ["playwright"], - "rules": { - "playwright/missing-playwright-await": "error", - "playwright/no-page-pause": "error", - "playwright/prefer-to-have-length": "error", - "playwright/valid-expect": "error" - } -} diff --git a/tests/playwright/base-test.ts b/tests/playwright/base-test.ts index bf2d362..4de803e 100644 --- a/tests/playwright/base-test.ts +++ b/tests/playwright/base-test.ts @@ -34,9 +34,9 @@ const baseTest = (sharedState: SharedState | null = {}) => { let page: Page if (sharedState?.page === undefined || sharedState?.page === null) { page = new Proxy(await context.newPage(), { - get (target, prop: keyof Page) { + get(target, prop: keyof Page) { if (prop === 'goto') { - return function (...args: Parameters) { + return function(...args: Parameters) { const [url, ...restArgs] = args let targetURL: string diff --git a/tests/playwright/commands/clearKongResources.ts b/tests/playwright/commands/clearKongResources.ts index 0b06a6b..97d65e6 100644 --- a/tests/playwright/commands/clearKongResources.ts +++ b/tests/playwright/commands/clearKongResources.ts @@ -43,9 +43,9 @@ export const clearKongResources = async (endpoint: string, clearOptions: ClearKo items.push(...res.data.data) } - // eslint-disable-next-line @typescript-eslint/no-explicit-any + if ((res.data as any)?.next) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any + next = kongUrl + (res.data as any)?.next } else { break @@ -81,7 +81,7 @@ export const clearKongResources = async (endpoint: string, clearOptions: ClearKo try { await Promise.all( Array.from({ length: WORKER_COUNT }).map(async () => { - let task: (() => AxiosPromise)|undefined + let task: (() => AxiosPromise) | undefined while ((task = tasks.shift())) { try { @@ -95,7 +95,7 @@ export const clearKongResources = async (endpoint: string, clearOptions: ClearKo throw e } } - }) + }), ) console.log(`${deletedCount} resources on ${endpoint} have been deleted`) } catch (err) { diff --git a/tests/playwright/commands/clickEntityListAction.ts b/tests/playwright/commands/clickEntityListAction.ts index 397a6b0..5882077 100644 --- a/tests/playwright/commands/clickEntityListAction.ts +++ b/tests/playwright/commands/clickEntityListAction.ts @@ -3,7 +3,7 @@ import type { Locator, Page } from '@playwright/test' export const clickEntityListAction = async ( pageOrLocator: Page | Locator, action: string, - nth = 1 + nth = 1, ) => { const row = pageOrLocator .locator('.k-table') diff --git a/tests/playwright/commands/type.ts b/tests/playwright/commands/type.ts index 8612c14..e43a013 100644 --- a/tests/playwright/commands/type.ts +++ b/tests/playwright/commands/type.ts @@ -1,2 +1,2 @@ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export type PayloadType = any; + +export type PayloadType = any diff --git a/tests/playwright/commands/withNavigation.ts b/tests/playwright/commands/withNavigation.ts index 16591b2..abdc5aa 100644 --- a/tests/playwright/commands/withNavigation.ts +++ b/tests/playwright/commands/withNavigation.ts @@ -7,7 +7,7 @@ const consumeNavigationStack = async ( timeout = 10, waitOptions?: { timeout?: number - waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit' + waitUntil?: 'load' | 'domcontentloaded' | 'networkidle' | 'commit' }, ): Promise> => { let all_cleared = false @@ -24,7 +24,7 @@ const consumeNavigationStack = async ( await new Promise((resolve) => setTimeout(resolve, firstWait)) resetTimer() - // eslint-disable-next-line no-unmodified-loop-condition + while (!all_cleared) { const result = await page.waitForNavigation(waitOptions).catch(() => false as const) @@ -42,13 +42,13 @@ const waitForNavigationImpl = async ( action: () => Promise, options?: { timeout?: number - waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit' + waitUntil?: 'load' | 'domcontentloaded' | 'networkidle' | 'commit' }, ): Promise => { // check potential existing navigation stack const stack = await consumeNavigationStack(page, 10, 1, { timeout: 10 }) if (stack.length) { - // eslint-disable-next-line no-console + console.warn('withNavigation: navigation stack is not empty') } @@ -70,7 +70,7 @@ export const withNavigation = async ( options?: { allowSameURL?: boolean timeout?: number - waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit' + waitUntil?: 'load' | 'domcontentloaded' | 'networkidle' | 'commit' }, ): Promise => { const { allowSameURL, ...waitOptions } = options ?? {} diff --git a/tests/playwright/fixtures/certificates.ts b/tests/playwright/fixtures/certificates.ts index 944efa8..d2cdbc8 100644 --- a/tests/playwright/fixtures/certificates.ts +++ b/tests/playwright/fixtures/certificates.ts @@ -1,18 +1,18 @@ interface Certificate { - cert: string; - key: string; - subject: string; - issuer: string; - notAfterFormattedUTC: RegExp; - subjectAltNameFormatted: string; - keyUsages: string[ ]; + cert: string; + key: string; + subject: string; + issuer: string; + notAfterFormattedUTC: RegExp; + subjectAltNameFormatted: string; + keyUsages: string[ ]; } interface CACertificate { - cert: string; - issuer: string; - notAfterFormattedUTC: RegExp; - keyUsages: string[ ]; + cert: string; + issuer: string; + notAfterFormattedUTC: RegExp; + keyUsages: string[ ]; } const certLegacy: Certificate = { diff --git a/tests/playwright/helpers/misc.ts b/tests/playwright/helpers/misc.ts index d40a367..28d0499 100644 --- a/tests/playwright/helpers/misc.ts +++ b/tests/playwright/helpers/misc.ts @@ -7,7 +7,7 @@ import { fileURLToPath } from 'url' const __dirname = path.dirname(fileURLToPath(import.meta.url)) -export const getMessageFromError = function (error: AxiosError<{ message?: string }>) { +export const getMessageFromError = function(error: AxiosError<{ message?: string }>) { if (error?.response?.data) { if (error.response.data.message) { return error.response.data.message @@ -36,8 +36,8 @@ export const getBasePath = () => { return pathname.endsWith('/') ? pathname : `${pathname}/` } -export const generateBitMap = function (name: string, width: number, height: number) { - const dir = path.resolve(__dirname, `../../tmp`) +export const generateBitMap = function(name: string, width: number, height: number) { + const dir = path.resolve(__dirname, '../../tmp') const fd = `${dir}/${name}` const rawData = bmp.encode({ data: {}, width, height }) diff --git a/tests/playwright/pages/ca-certificates.ts b/tests/playwright/pages/ca-certificates.ts index 0444d5e..fc4337a 100644 --- a/tests/playwright/pages/ca-certificates.ts +++ b/tests/playwright/pages/ca-certificates.ts @@ -6,7 +6,7 @@ export class CACertificateListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/ca-certificates') } } diff --git a/tests/playwright/pages/certificates.ts b/tests/playwright/pages/certificates.ts index 18dcf14..e49a909 100644 --- a/tests/playwright/pages/certificates.ts +++ b/tests/playwright/pages/certificates.ts @@ -6,7 +6,7 @@ export class CertificateListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/certificates') } } diff --git a/tests/playwright/pages/consumers.ts b/tests/playwright/pages/consumers.ts index b5fd618..7660bed 100644 --- a/tests/playwright/pages/consumers.ts +++ b/tests/playwright/pages/consumers.ts @@ -6,7 +6,7 @@ export class ConsumerListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/consumers') } } diff --git a/tests/playwright/pages/data-plane-nodes.ts b/tests/playwright/pages/data-plane-nodes.ts index c2ba25f..2bbca47 100644 --- a/tests/playwright/pages/data-plane-nodes.ts +++ b/tests/playwright/pages/data-plane-nodes.ts @@ -6,7 +6,7 @@ export class DataPlaneNodesPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/data-plane-nodes') } } diff --git a/tests/playwright/pages/index.ts b/tests/playwright/pages/index.ts index aceb970..a6e8ff5 100644 --- a/tests/playwright/pages/index.ts +++ b/tests/playwright/pages/index.ts @@ -7,9 +7,9 @@ export class POM { submitButton: '[data-testid="form-actions"] .k-button.primary', } - constructor (public readonly page: Page, public readonly url: string) { } + constructor(public readonly page: Page, public readonly url: string) { } - async goto () { + async goto() { return this.page.goto(this.url) } } diff --git a/tests/playwright/pages/key-sets.ts b/tests/playwright/pages/key-sets.ts index b03f3a9..8942e21 100644 --- a/tests/playwright/pages/key-sets.ts +++ b/tests/playwright/pages/key-sets.ts @@ -6,7 +6,7 @@ export class KeySetListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/key-sets') } } diff --git a/tests/playwright/pages/keys.ts b/tests/playwright/pages/keys.ts index 7c87e7b..306edeb 100644 --- a/tests/playwright/pages/keys.ts +++ b/tests/playwright/pages/keys.ts @@ -6,7 +6,7 @@ export class KeyListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/keys') } } diff --git a/tests/playwright/pages/plugins.ts b/tests/playwright/pages/plugins.ts index 813efc8..a04048e 100644 --- a/tests/playwright/pages/plugins.ts +++ b/tests/playwright/pages/plugins.ts @@ -6,7 +6,7 @@ export class PluginListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/plugins') } } diff --git a/tests/playwright/pages/routes.ts b/tests/playwright/pages/routes.ts index cf2f408..6244b79 100644 --- a/tests/playwright/pages/routes.ts +++ b/tests/playwright/pages/routes.ts @@ -6,7 +6,7 @@ export class RouteListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/routes') } } @@ -16,7 +16,7 @@ export class RouteCreatePage extends POM { ...POM.$, } - constructor (page: Page, options: { serviceId?: string } = {}) { + constructor(page: Page, options: { serviceId?: string } = {}) { const { serviceId = '' } = options super(page, `/routes/create?serviceId=${serviceId}`) diff --git a/tests/playwright/pages/services.ts b/tests/playwright/pages/services.ts index b5f28a8..44d1da2 100644 --- a/tests/playwright/pages/services.ts +++ b/tests/playwright/pages/services.ts @@ -6,7 +6,7 @@ export class ServiceListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/services') } } diff --git a/tests/playwright/pages/snis.ts b/tests/playwright/pages/snis.ts index 0a4cab5..4400492 100644 --- a/tests/playwright/pages/snis.ts +++ b/tests/playwright/pages/snis.ts @@ -6,7 +6,7 @@ export class SniListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/snis') } } diff --git a/tests/playwright/pages/upstreams.ts b/tests/playwright/pages/upstreams.ts index ea4c280..71d5d18 100644 --- a/tests/playwright/pages/upstreams.ts +++ b/tests/playwright/pages/upstreams.ts @@ -6,7 +6,7 @@ export class UpstreamListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/upstreams') } } diff --git a/tests/playwright/pages/vaults.ts b/tests/playwright/pages/vaults.ts index 5f00125..57b1f18 100644 --- a/tests/playwright/pages/vaults.ts +++ b/tests/playwright/pages/vaults.ts @@ -6,7 +6,7 @@ export class VaultListPage extends POM { ...POM.$, } - constructor (page: Page) { + constructor(page: Page) { super(page, '/vaults') } } diff --git a/tests/playwright/specs/consumers/03-ConsumerPlugins.spec.ts b/tests/playwright/specs/consumers/03-ConsumerPlugins.spec.ts index 3aa5ce2..a54d4ca 100644 --- a/tests/playwright/specs/consumers/03-ConsumerPlugins.spec.ts +++ b/tests/playwright/specs/consumers/03-ConsumerPlugins.spec.ts @@ -39,17 +39,17 @@ test.describe('consumer plugins', () => { await switchDetailTab(page, 'plugins') await withNavigation( page, - async () => await page.locator('.empty-state-action .primary').click() + async () => await page.locator('.empty-state-action .primary').click(), ) await withNavigation( page, - async () => await page.getByTestId('datadog-card').click() + async () => await page.getByTestId('datadog-card').click(), ) await expect(page.locator('.autosuggest input#consumer-id')).toBeVisible() await expect(page.locator('.autosuggest input#consumer-id')).toHaveValue(new RegExp(`${mockConsumerName}\\s*-\\s*${uuid}`)) await withNavigation( page, - async () => await page.locator('[data-testid="form-actions"] .primary').click() + async () => await page.locator('[data-testid="form-actions"] .primary').click(), ) }) @@ -70,7 +70,7 @@ test.describe('consumer plugins', () => { await page.locator('#tags').fill(`${mockTag}${mockTag}`) await withNavigation( page, - async () => await page.locator('[data-testid="form-cancel"]').click() + async () => await page.locator('[data-testid="form-cancel"]').click(), ) await expect(page.locator('.k-table .table-wrapper [data-testid="tags"]')).toHaveText(mockTag) }) @@ -94,7 +94,7 @@ test.describe('consumer plugins', () => { await page.locator('#config-second').fill('30') await withNavigation( page, - async () => await page.locator('[data-testid="form-actions"] .primary').click() + async () => await page.locator('[data-testid="form-actions"] .primary').click(), ) await expect(page.locator('.kong-ui-entities-plugins-list [data-testid="appliedTo"] .k-badge')).toContainText('Global') diff --git a/tests/playwright/specs/misc/01-EntityListPagination.spec.ts b/tests/playwright/specs/misc/01-EntityListPagination.spec.ts index 8e7b04f..e03f04a 100644 --- a/tests/playwright/specs/misc/01-EntityListPagination.spec.ts +++ b/tests/playwright/specs/misc/01-EntityListPagination.spec.ts @@ -13,8 +13,8 @@ test.describe('entity list pagination', () => { Array(50).fill(0).map((_, i) => createKongResource('/consumers', { username: `consumer-${i.toString().padStart(3, '0')}`, - }) - ) + }), + ), ) }) diff --git a/tests/playwright/specs/plugins/01-Plugins.spec.ts b/tests/playwright/specs/plugins/01-Plugins.spec.ts index 48a1540..d16eb61 100644 --- a/tests/playwright/specs/plugins/01-Plugins.spec.ts +++ b/tests/playwright/specs/plugins/01-Plugins.spec.ts @@ -74,12 +74,12 @@ test.describe('plugins', () => { await withNavigation( page, - async () => await page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]') + async () => await page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]'), ) await withNavigation( page, - async () => await page.getByTestId('basic-auth-card').click() + async () => await page.getByTestId('basic-auth-card').click(), ) await expect(page.locator('.autosuggest input#service-id')).toBeVisible() @@ -91,7 +91,7 @@ test.describe('plugins', () => { await withNavigation( page, - async () => await page.locator('[data-testid="form-actions"] .primary').click() + async () => await page.locator('[data-testid="form-actions"] .primary').click(), ) await expect(page.locator('.k-table tbody tr')).toHaveCount(1) await expect(page.locator('td[data-testid="name"]')).toContainText('Basic Authentication') @@ -104,7 +104,7 @@ test.describe('plugins', () => { test('plugin icons - plugin select', async ({ browserName, page }) => { await withNavigation( page, - async () => await page.click('.kong-ui-entities-plugins-list [data-testid="toolbar-add-plugin"]') + async () => await page.click('.kong-ui-entities-plugins-list [data-testid="toolbar-add-plugin"]'), ) const pluginIcon = page.locator('.plugin-select-card [data-testid="Basic Authentication"] img.plugin-card-icon') @@ -188,12 +188,12 @@ test.describe('plugins', () => { await withNavigation( page, - async () => await page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]') + async () => await page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]'), ) await withNavigation( page, - async () => await page.getByTestId('basic-auth-card').click() + async () => await page.getByTestId('basic-auth-card').click(), ) await expect(page.locator('.autosuggest input#route-id')).toBeVisible() @@ -201,7 +201,7 @@ test.describe('plugins', () => { await withNavigation( page, - async () => await page.locator('[data-testid="form-actions"] .primary').click() + async () => await page.locator('[data-testid="form-actions"] .primary').click(), ) await expect(page.locator('.k-table tbody tr')).toHaveCount(1) await expect(page.locator('td[data-testid="name"]')).toContainText('Basic Authentication') @@ -220,17 +220,17 @@ test.describe('plugins', () => { await switchDetailTab(page, 'plugins') await withNavigation( page, - async () => await page.locator('.empty-state-action .primary').click() + async () => await page.locator('.empty-state-action .primary').click(), ) await withNavigation( page, - async () => await page.getByTestId('datadog-card').click() + async () => await page.getByTestId('datadog-card').click(), ) await expect(page.locator('.autosuggest input#consumer-id')).toBeVisible() await expect(page.locator('.autosuggest input#consumer-id')).toHaveValue(new RegExp(`${mockConsumerName}\\s*-\\s*${uuid}`)) await withNavigation( page, - async () => await page.locator('[data-testid="form-actions"] .primary').click() + async () => await page.locator('[data-testid="form-actions"] .primary').click(), ) await expect(page.locator('.k-table tbody tr')).toHaveCount(1) await expect(page.locator('td[data-testid="name"]')).toContainText('Datadog') @@ -294,11 +294,11 @@ test.describe('plugins', () => { await withNavigation( page, - async () => await page.locator('.empty-state-action .primary').click() + async () => await page.locator('.empty-state-action .primary').click(), ) await withNavigation( page, - async () => await page.getByTestId('basic-auth-card').click() + async () => await page.getByTestId('basic-auth-card').click(), ) await page.click('.plugin-protocols-select .multiselect-trigger') @@ -308,7 +308,7 @@ test.describe('plugins', () => { await withNavigation( page, - async () => await page.locator('[data-testid="form-actions"] .primary').click() + async () => await page.locator('[data-testid="form-actions"] .primary').click(), ) await withNavigation(page, async () => await clickEntityListAction(page, 'view')) @@ -328,7 +328,7 @@ test.describe('plugins', () => { tags: mockTag, }, withAction: 'submit', - }) + }), ) let row = page.locator('.kong-ui-entities-plugins-list').locator('tr').nth(1) @@ -345,7 +345,7 @@ test.describe('plugins', () => { tags: `${mockTag}${mockTag}`, }, withAction: 'cancel', - }) + }), ) row = page.locator('.kong-ui-entities-plugins-list').locator('tr').nth(1) @@ -490,7 +490,7 @@ test.describe('plugins', () => { page, formData: { 'config-allow': ['0.0.0.0/32'] }, withAction: 'submit', - }) + }), ) await clickEntityListAction(page, 'edit') @@ -548,7 +548,7 @@ test.describe('plugins', () => { await fillEntityForm({ page, withAction: 'submit', - }) + }), ) // verify the created plugin is global diff --git a/tests/playwright/specs/routes-expressions/01-Routes.spec.ts b/tests/playwright/specs/routes-expressions/01-Routes.spec.ts index 42b254f..757caaf 100644 --- a/tests/playwright/specs/routes-expressions/01-Routes.spec.ts +++ b/tests/playwright/specs/routes-expressions/01-Routes.spec.ts @@ -18,7 +18,7 @@ test.describe('route creation page', () => { expect( kongInfoRes?.data?.configuration?.router_flavor, - 'this test group should only be performed against Gateway with router_flavor = expressions' + 'this test group should only be performed against Gateway with router_flavor = expressions', ).toEqual('expressions') await clearKongResources('/routes') diff --git a/tests/playwright/specs/routes/01-Routes.spec.ts b/tests/playwright/specs/routes/01-Routes.spec.ts index 47e79d7..68cd9bd 100644 --- a/tests/playwright/specs/routes/01-Routes.spec.ts +++ b/tests/playwright/specs/routes/01-Routes.spec.ts @@ -83,7 +83,7 @@ test.describe('routes', () => { test('route create - cancel button', async ({ page }) => { await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) await page.locator('[data-testid="form-cancel"]').click() await expectEmptyEntityList(page, 'routes', 'Configure a New Route') @@ -91,7 +91,7 @@ test.describe('routes', () => { test('route create - save button is disabled', async ({ page }) => { await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) await expect(page.locator('[data-testid="form-submit"]')).toBeDisabled() @@ -99,7 +99,7 @@ test.describe('routes', () => { test('route create - cannot be submit if only protocol is clicked', async ({ page }) => { await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) await page.locator('[data-testid="route-form-protocols"]').fill('http') @@ -108,7 +108,7 @@ test.describe('routes', () => { test('route create - fail with invalid paths', async ({ page }) => { await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) await fillArrayField(page, 'paths', ['kong(-ee){0,1}.com'], true) @@ -121,12 +121,12 @@ test.describe('routes', () => { withAction: 'submit', }) await expect(page.locator('[data-testid="form-error"]')).toBeVisible() - await expect(page.locator('[data-testid="form-error"] .alert-message')).toHaveText(`schema violation (paths.1: should start with: / (fixed path) or ~/ (regex path))`) + await expect(page.locator('[data-testid="form-error"] .alert-message')).toHaveText('schema violation (paths.1: should start with: / (fixed path) or ~/ (regex path))') }) test('route create - can open/close advanced fields', async ({ page }) => { await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) // default the advanced field status @@ -160,7 +160,7 @@ test.describe('routes', () => { for (const protocol of protocols) { test(`route create - sni field appears and hide correctly with protocols (${protocol})`, async ({ page }) => { await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) await selectProtocols(page, `${protocol}`) @@ -173,10 +173,10 @@ test.describe('routes', () => { } } - test(`route create - successful create`, async ({ page }) => { + test('route create - successful create', async ({ page }) => { await withNavigation( page, - async () => await page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click() + async () => await page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click(), ) await page.waitForSelector('.k-breadcrumbs', { state: 'hidden' }) @@ -241,7 +241,7 @@ test.describe('routes', () => { 'route-form-tags': mockTag, }, withAction: 'cancel', - }) + }), ) await expect(page.locator('.entity-record [data-testid="tags"] .k-badge')).toHaveCount(0) @@ -281,7 +281,7 @@ test.describe('routes', () => { formData: {}, withAction: 'submit', }) - } + }, ) await waitAndDismissToasts(page) }) @@ -335,7 +335,7 @@ test.describe('routes', () => { await withNavigation( page, - async () => await page.locator('.table-empty-state .primary').click() + async () => await page.locator('.table-empty-state .primary').click(), ) await init() @@ -355,7 +355,7 @@ test.describe('routes', () => { await clearKongResources('/routes') } - test(`route create - successful with "http", "https"`, async ({ page }) => { + test('route create - successful with "http", "https"', async ({ page }) => { const protocols = ['http', 'https', 'http,https'] const data = { 'route-form-name': `route_name_${Date.now()}`, @@ -391,7 +391,7 @@ test.describe('routes', () => { } }) - test(`route create - successful with "grpc", "grpcs"`, async ({ page }) => { + test('route create - successful with "grpc", "grpcs"', async ({ page }) => { const protocols = ['grpc', 'grpcs', 'grpc,grpcs'] const data = { 'route-form-name': `route_name_${Date.now()}`, @@ -427,7 +427,7 @@ test.describe('routes', () => { } }) - test(`route create - successful with "tls", "tcp"`, async ({ page }) => { + test('route create - successful with "tls", "tcp"', async ({ page }) => { const protocols = ['tcp', 'tls', 'tcp,tls,udp'] const data = { 'route-form-name': `route_name_${Date.now()}`, @@ -466,7 +466,7 @@ test.describe('routes', () => { } }) - test(`route create changing protocols from tcp to http - successful`, async ({ page }) => { + test('route create changing protocols from tcp to http - successful', async ({ page }) => { const data = { 'route-form-name': `route_name_${Date.now()}`, 'route-form-tags': 'tag1,tag2', @@ -500,7 +500,7 @@ test.describe('routes', () => { }) }) - test(`route create with http protocol by default - successful`, async ({ page }) => { + test('route create with http protocol by default - successful', async ({ page }) => { const data = { 'route-form-name': `route_name_${Date.now()}`, 'route-form-tags': 'tag1,tag2', @@ -515,7 +515,7 @@ test.describe('routes', () => { }) }) - test(`route create with https protocol if selected - successful`, async ({ page }) => { + test('route create with https protocol if selected - successful', async ({ page }) => { const data = { 'route-form-name': `route_name_${Date.now()}`, 'route-form-tags': 'tag1,tag2', @@ -531,7 +531,7 @@ test.describe('routes', () => { }) }) - test(`route create - with valid regex paths - successful`, async ({ page }) => { + test('route create - with valid regex paths - successful', async ({ page }) => { const data = { 'route-form-name': `route_name_${Date.now()}`, 'route-form-tags': 'tag1,tag2', @@ -603,7 +603,7 @@ test.describe('routes', () => { fillEntityForm({ page, withAction: 'submit', - }) + }), ) await page.goto(`/routes/${route?.data.id}`) diff --git a/tests/playwright/specs/routes/02-RoutesPlugins.spec.ts b/tests/playwright/specs/routes/02-RoutesPlugins.spec.ts index 736e198..d4591c5 100644 --- a/tests/playwright/specs/routes/02-RoutesPlugins.spec.ts +++ b/tests/playwright/specs/routes/02-RoutesPlugins.spec.ts @@ -58,12 +58,12 @@ test.describe('routes plugins', () => { await withNavigation( page, - async () => await page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]') + async () => await page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]'), ) await withNavigation( page, - async () => await page.getByTestId('basic-auth-card').click() + async () => await page.getByTestId('basic-auth-card').click(), ) await expect(page.locator('.autosuggest input#route-id')).toBeVisible() @@ -71,7 +71,7 @@ test.describe('routes plugins', () => { await withNavigation( page, - async () => await page.locator('[data-testid="form-actions"] .primary').click() + async () => await page.locator('[data-testid="form-actions"] .primary').click(), ) await expect(page.locator('.k-table tbody tr')).toHaveCount(1) await expect(page.locator('td[data-testid="name"]')).toContainText('Basic Authentication') @@ -104,7 +104,7 @@ test.describe('routes plugins', () => { tags: `${mockTag}${mockTag}`, }, withAction: 'cancel', - }) + }), ) await expect(page.locator('.k-table .table-wrapper [data-testid="tags"]')).toHaveText(mockTag) }) diff --git a/tests/playwright/specs/services/01-Service.spec.ts b/tests/playwright/specs/services/01-Service.spec.ts index 5224975..38b8bf5 100644 --- a/tests/playwright/specs/services/01-Service.spec.ts +++ b/tests/playwright/specs/services/01-Service.spec.ts @@ -47,7 +47,7 @@ test.describe('services', () => { test('service create - cancel button', async ({ page }) => { await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) await page.getByTestId('form-cancel').click() await expectEmptyEntityList(page, 'gateway-services', 'Configure a New Gateway Service') @@ -55,7 +55,7 @@ test.describe('services', () => { test('service create - fail with required field', async ({ page }) => { await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) await fillEntityForm({ page, @@ -66,7 +66,7 @@ test.describe('services', () => { test('service create - successful create', async ({ page }) => { await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) await withNavigation(page, () => fillEntityForm({ @@ -76,7 +76,7 @@ test.describe('services', () => { 'gateway-service-url-input': testService.url, }, withAction: 'submit', - }) + }), ) await clickEntityListAction(page, 'view') await waitAndDismissToasts(page) @@ -110,7 +110,7 @@ test.describe('services', () => { page .locator('.page-header') .locator('[type="button"]:has-text("Back")') - .click() + .click(), ) await page.waitForSelector('.kong-ui-entities-gateway-services-list') }) @@ -135,7 +135,7 @@ test.describe('services', () => { test('service create - fail with duplicate name', async ({ page }) => { await withNavigation(page, () => - page.locator('.toolbar-button-container .primary').click() + page.locator('.toolbar-button-container .primary').click(), ) await fillEntityForm({ page, @@ -152,7 +152,7 @@ test.describe('services', () => { test('service create - fail & fix with invalid info', async ({ page }) => { await withNavigation(page, () => - page.locator('.toolbar-button-container .primary').click() + page.locator('.toolbar-button-container .primary').click(), ) await fillEntityForm({ page, @@ -175,7 +175,7 @@ test.describe('services', () => { 'gateway-service-url-input': 'http://fixedurl.com', }, withAction: 'submit', - }) + }), ) await waitAndDismissToasts(page) await deleteKongResource('/services', 'fixed.service') @@ -183,7 +183,7 @@ test.describe('services', () => { test('service create - success without name set', async ({ page }) => { await withNavigation(page, () => - page.locator('.toolbar-button-container .primary').click() + page.locator('.toolbar-button-container .primary').click(), ) await withNavigation(page, () => fillEntityForm({ @@ -192,7 +192,7 @@ test.describe('services', () => { 'gateway-service-url-input': 'http://mockbin.org:80', }, withAction: 'submit', - }) + }), ) await clickEntityListAction(page, 'view') const serviceId = (await page @@ -206,7 +206,7 @@ test.describe('services', () => { test('service create - fail with illegal optional field', async ({ page }) => { await withNavigation(page, () => - page.locator('.toolbar-button-container .primary').click() + page.locator('.toolbar-button-container .primary').click(), ) await expect(page.getByTestId('collapse-trigger-content')).toBeVisible() @@ -231,7 +231,7 @@ test.describe('services', () => { for (const protocol of protocols) { test(`service create - successful with current selected radio group (${protocol})`, async ({ page }) => { await withNavigation(page, () => - page.locator('.toolbar-button-container .primary').click() + page.locator('.toolbar-button-container .primary').click(), ) const data = { 'gateway-service-name-input': `test_protocol_${protocol}`, @@ -254,7 +254,7 @@ test.describe('services', () => { page, formData: data, withAction: 'submit', - }) + }), ) await clickEntityListAction(page, 'view') const serviceId = (await page @@ -275,7 +275,7 @@ test.describe('services', () => { await serviceListPage.goto() await withNavigation(page, () => - page.locator('.table-empty-state .primary').click() + page.locator('.table-empty-state .primary').click(), ) await page.getByTestId('collapse-trigger-content').click() @@ -328,7 +328,7 @@ test.describe('services', () => { await serviceListPage.goto() await withNavigation(page, () => - page.locator('.toolbar-button-container .primary').click() + page.locator('.toolbar-button-container .primary').click(), ) await page.getByTestId('collapse-trigger-content').click() @@ -342,7 +342,7 @@ test.describe('services', () => { 'gateway-service-clientCert-input': certificate.id, }, withAction: 'submit', - }) + }), ) await clickEntityListAction(page, 'view') const serviceId = (await page @@ -385,7 +385,7 @@ test.describe('services', () => { 'gateway-service-tags-input': 'tag1,tag2,tag3', }, withAction: 'submit', - }) + }), ) await expect(page.locator('[data-testid="tags-badge-tags"] .badge-content-wrapper')).toHaveText(['tag1', 'tag2', 'tag3']) @@ -399,7 +399,7 @@ test.describe('services', () => { }, method: 'fill', withAction: 'submit', - }) + }), ) await expect(page.locator('[data-testid="tags-badge-tags"] .badge-content-wrapper')).toHaveText(['tag11', 'tag12', 'tag13']) diff --git a/tests/playwright/specs/services/02-ServiceRoutes.spec.ts b/tests/playwright/specs/services/02-ServiceRoutes.spec.ts index 01e1736..6078dc5 100644 --- a/tests/playwright/specs/services/02-ServiceRoutes.spec.ts +++ b/tests/playwright/specs/services/02-ServiceRoutes.spec.ts @@ -52,7 +52,7 @@ test.describe('service routes', () => { await switchDetailTab(page, 'routes') await page.waitForSelector('.kong-ui-entities-routes-list .table-empty-state') await withNavigation(page, () => - page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click() + page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click(), ) await expect(page.locator('.kong-ui-entities-route-form')).toBeVisible() @@ -66,7 +66,7 @@ test.describe('service routes', () => { await switchDetailTab(page, 'routes') await page.waitForSelector('.kong-ui-entities-routes-list .table-empty-state') await withNavigation(page, () => - page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click() + page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click(), ) await expect(page.locator('[data-testid="form-submit"]')).toBeDisabled() @@ -77,7 +77,7 @@ test.describe('service routes', () => { await switchDetailTab(page, 'routes') await page.waitForSelector('.kong-ui-entities-routes-list .table-empty-state') await withNavigation(page, () => - page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click() + page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click(), ) await selectMethods(page, ['GET']) @@ -86,7 +86,7 @@ test.describe('service routes', () => { page, formData: testRoute, withAction: 'submit', - }) + }), ) await waitAndDismissToasts(page) @@ -100,7 +100,7 @@ test.describe('service routes', () => { await switchDetailTab(page, 'routes') await page.waitForSelector('.kong-ui-entities-routes-list .table-empty-state') await withNavigation(page, () => - page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click() + page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click(), ) await selectMethods(page, ['GET']) @@ -109,7 +109,7 @@ test.describe('service routes', () => { page, formData: {}, withAction: 'submit', - }) + }), ) await waitAndDismissToasts(page) @@ -123,7 +123,7 @@ test.describe('service routes', () => { await switchDetailTab(page, 'routes') await page.waitForSelector('.kong-ui-entities-routes-list .table-empty-state') await withNavigation(page, () => - page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click() + page.locator('.kong-ui-entities-routes-list .table-empty-state .primary').click(), ) await selectMethods(page, ['GET']) @@ -132,7 +132,7 @@ test.describe('service routes', () => { page, formData: {}, withAction: 'submit', - }) + }), ) await waitAndDismissToasts(page) @@ -144,7 +144,7 @@ test.describe('service routes', () => { 'route-form-name': 'test.111', }, withAction: 'submit', - }) + }), ) await page.waitForSelector('.kong-ui-entities-routes-list') await expect(page.locator('tr[data-testid="test.111"]')).toBeVisible() diff --git a/tests/playwright/specs/services/03-ServicePlugins.spec.ts b/tests/playwright/specs/services/03-ServicePlugins.spec.ts index 3e03a57..b2471e7 100644 --- a/tests/playwright/specs/services/03-ServicePlugins.spec.ts +++ b/tests/playwright/specs/services/03-ServicePlugins.spec.ts @@ -42,7 +42,7 @@ test.describe('service plugins', () => { test('service plugin has service id prefilled', async ({ page }) => { await page.goto(`/services/${testService?.id}/plugins`) await withNavigation(page, () => - page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]') + page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]'), ) await page.getByTestId('hmac-auth-card').click() await expect(page.locator('.autosuggest input#service-id')).toHaveValue(new RegExp(`${testService?.name}\\s*-\\s*${testService?.id}`)) @@ -54,10 +54,10 @@ test.describe('service plugins', () => { await switchDetailTab(page, 'plugins') await page.waitForSelector('.kong-ui-entities-plugins-list .k-empty-state') await withNavigation(page, () => - page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]') + page.click('.kong-ui-entities-plugins-list [data-testid="new-plugin"]'), ) await withNavigation(page, () => - page.getByTestId('basic-auth-card').click() + page.getByTestId('basic-auth-card').click(), ) await fillEntityForm({ page }) @@ -92,7 +92,7 @@ test.describe('service plugins', () => { page .locator('[data-testid="form-actions"]') .locator('[data-testid="form-cancel"]') - .click() + .click(), ) await page.waitForSelector('.kong-ui-entities-plugins-list') }) diff --git a/tests/playwright/specs/snis/01-SNIs.spec.ts b/tests/playwright/specs/snis/01-SNIs.spec.ts index 50411bd..a28c249 100644 --- a/tests/playwright/specs/snis/01-SNIs.spec.ts +++ b/tests/playwright/specs/snis/01-SNIs.spec.ts @@ -20,7 +20,7 @@ const test = baseTest().extend<{ }) test.describe('snis', () => { - let certificate: { id: string} + let certificate: { id: string } test.beforeAll(async () => { await clearKongResources('/snis') @@ -49,7 +49,7 @@ test.describe('snis', () => { test('create an sni - fail', async ({ page }) => { await withNavigation( page, - async () => await page.locator('.table-empty-state .primary').click() + async () => await page.locator('.table-empty-state .primary').click(), ) await expect(page.locator('[data-testid="sni-form-certificate-id"]')).toBeVisible() @@ -63,7 +63,7 @@ test.describe('snis', () => { test('create an sni', async ({ page }) => { await withNavigation( page, - async () => await page.locator('.table-empty-state .primary').click() + async () => await page.locator('.table-empty-state .primary').click(), ) await expect(page.locator('[data-testid="sni-form-certificate-id"]')).toBeVisible() @@ -91,7 +91,7 @@ test.describe('snis', () => { 'sni-form-tags': mockTag, }, withAction: 'submit', - }) + }), ) await expect(page.locator('.k-table .table-wrapper [data-testid="tags"]')).toHaveText(mockTag) @@ -105,7 +105,7 @@ test.describe('snis', () => { 'sni-form-tags': `${mockTag}${mockTag}`, }, withAction: 'cancel', - }) + }), ) await expect(page.locator('.k-table .table-wrapper [data-testid="tags"]')).toHaveText(mockTag) }) diff --git a/tests/playwright/specs/upstreams/01-Upstreams.spec.ts b/tests/playwright/specs/upstreams/01-Upstreams.spec.ts index 0f9399d..6528585 100644 --- a/tests/playwright/specs/upstreams/01-Upstreams.spec.ts +++ b/tests/playwright/specs/upstreams/01-Upstreams.spec.ts @@ -83,7 +83,7 @@ test.describe('upstreams', () => { test('create an upstream', async ({ page }) => { await withNavigation( page, - async () => await page.locator('.kong-ui-entities-upstreams-list .table-empty-state .primary').click() + async () => await page.locator('.kong-ui-entities-upstreams-list .table-empty-state .primary').click(), ) await selectOption(page.locator('.k-select.name-select'), service_host1.id) @@ -101,7 +101,7 @@ test.describe('upstreams', () => { test('upstream create - failure with the same upstream host', async ({ page }) => { await withNavigation( page, - async () => await page.getByTestId('toolbar-add-upstream').click() + async () => await page.getByTestId('toolbar-add-upstream').click(), ) await selectOption(page.locator('.k-select.name-select'), service_host1.id) @@ -137,7 +137,7 @@ test.describe('upstreams', () => { 'upstreams-form-tags': mockTag, }, withAction: 'submit', - }) + }), ) await expect(page.locator('.k-table .table-wrapper [data-testid="tags"]')).toHaveText(mockTag) @@ -151,7 +151,7 @@ test.describe('upstreams', () => { 'upstreams-form-tags': `${mockTag}${mockTag}`, }, withAction: 'cancel', - }) + }), ) await expect(page.locator('.k-table .table-wrapper [data-testid="tags"]')).toHaveText(mockTag) }) @@ -171,7 +171,7 @@ test.describe('upstreams', () => { await withNavigation( page, - async () => await page.locator('.kong-ui-entities-upstreams-list .table-empty-state .primary').click() + async () => await page.locator('.kong-ui-entities-upstreams-list .table-empty-state .primary').click(), ) await selectOption(page.locator('.k-select.name-select'), service_host1.id) @@ -203,14 +203,14 @@ test.describe('upstreams', () => { } }) - // eslint-disable-next-line max-params + const create_upstream = async (page, upstreamListPage, init, data, verify, is_success = true) => { await clearKongResources('/upstreams') await upstreamListPage.goto() await withNavigation( page, - async () => await page.locator('.table-empty-state .primary').click() + async () => await page.locator('.table-empty-state .primary').click(), ) await init() @@ -230,7 +230,7 @@ test.describe('upstreams', () => { await verify() } - // eslint-disable-next-line max-params + const update_upstream = async (page, upstreamListPage, init, data, verify, is_success = true) => { await upstreamListPage.goto() @@ -274,7 +274,7 @@ test.describe('upstreams', () => { async () => { await expect(getPropertyValue(page, 'name')).toHaveText(upstream_host2) await expect(getPropertyValue(page, 'algorithm')).toHaveText(algorithm.expect) - } + }, ) }) } @@ -305,7 +305,7 @@ test.describe('upstreams', () => { const hash_on = algorithm.hash ? 'ip' : 'none' await expect(getPropertyValue(page, 'hash_on')).toHaveText(hash_on) - } + }, ) }) } @@ -331,7 +331,7 @@ test.describe('upstreams', () => { if (entity.fill) { await expect(getPropertyValue(page, `hash_on_${entity.type}`)).toHaveText(entity.type) } - } + }, ) }) } @@ -385,7 +385,7 @@ test.describe('upstreams', () => { await expect(getPropertyValue(page, testid)).toHaveText(fallback.type) } - } + }, ) }) } @@ -440,7 +440,7 @@ test.describe('upstreams', () => { await expect(page.locator('.alert-content')).toHaveText(`2 schema violations (failed conditional validation given value of field 'hash_on'; hash_fallback: expected one of: ${expect_hashs.join(', ')})`) } }, - false + false, ) }) } @@ -452,8 +452,8 @@ test.describe('upstreams', () => { await selectOption(page.locator('.k-select.name-select'), service_host2.id) // set hash-on await selectOption(page.locator('.k-select.hash-on-select'), 'cookie') - await expect(page.getByTestId(`upstreams-form-hash-on-cookie`)).toBeVisible() - await page.getByTestId(`upstreams-form-hash-on-cookie`).fill('cookie') + await expect(page.getByTestId('upstreams-form-hash-on-cookie')).toBeVisible() + await page.getByTestId('upstreams-form-hash-on-cookie').fill('cookie') await expect(page.locator('.k-select.hash-fallback-select [data-testid="select-input"]')).toBeDisabled() }, @@ -464,11 +464,11 @@ test.describe('upstreams', () => { await expect(getPropertyValue(page, 'hash_on')).toHaveText('cookie') await expect(getPropertyValue(page, 'hash_on_cookie')).toHaveText('cookie') await expect(getPropertyValue(page, 'hash_on_cookie_path')).toHaveText('/') - } + }, ) }) - test(`upstream create - successful enbale/disbale active or passive health check`, async ({ page, upstreamListPage }) => { + test('upstream create - successful enbale/disbale active or passive health check', async ({ page, upstreamListPage }) => { test.slow() // create a new upstream await create_upstream( @@ -485,7 +485,7 @@ test.describe('upstreams', () => { expect(JSON.parse(passive)).toEqual(JSON.parse('{"type": "http", "healthy": {"successes": 0, "http_statuses": [200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308]}, "unhealthy": {"http_statuses": [429, 500, 503], "tcp_failures": 0, "timeouts": 0, "http_failures": 0}}')) expect(JSON.parse(active)).toEqual(JSON.parse('{"concurrency": 10, "healthy": {"interval": 0, "http_statuses": [200, 302], "successes": 0}, "unhealthy": {"interval": 0, "tcp_failures": 0, "timeouts": 0, "http_failures": 0, "http_statuses": [429, 404, 500, 501, 502, 503, 504, 505]}, "headers": null, "type": "http", "https_sni": null, "https_verify_certificate": true, "http_path": "/", "timeout": 1}')) - } + }, ) // enable active health check @@ -502,7 +502,7 @@ test.describe('upstreams', () => { expect(JSON.parse(passive)).toEqual(JSON.parse('{"type": "http", "healthy": {"successes": 0, "http_statuses": [200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308]}, "unhealthy": {"http_statuses": [429, 500, 503], "tcp_failures": 0, "timeouts": 0, "http_failures": 0}}')) expect(JSON.parse(active)).toEqual(JSON.parse('{"concurrency": 10, "healthy": {"interval": 5, "http_statuses": [200, 302], "successes": 5}, "unhealthy": {"interval": 5, "tcp_failures": 0, "timeouts": 0, "http_failures": 5, "http_statuses": [429, 404, 500, 501, 502, 503, 504, 505]}, "headers": {}, "type": "http", "https_sni": null, "https_verify_certificate": true, "http_path": "/", "timeout": 1}')) - } + }, ) // enable passive health check @@ -519,7 +519,7 @@ test.describe('upstreams', () => { expect(JSON.parse(passive)).toEqual(JSON.parse('{"type": "http", "healthy": {"successes": 80, "http_statuses": [200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308]}, "unhealthy": {"http_statuses": [429, 500, 503], "tcp_failures": 0, "timeouts": 5, "http_failures": 5}}')) expect(JSON.parse(active)).toEqual(JSON.parse('{"concurrency": 10, "healthy": {"interval": 5, "http_statuses": [200, 302], "successes": 5}, "unhealthy": {"interval": 5, "tcp_failures": 0, "timeouts": 0, "http_failures": 5, "http_statuses": [429, 404, 500, 501, 502, 503, 504, 505]}, "headers": {}, "type": "http", "https_sni": null, "https_verify_certificate": true, "http_path": "/", "timeout": 1}')) - } + }, ) // disable active health check @@ -536,7 +536,7 @@ test.describe('upstreams', () => { expect(JSON.parse(passive)).toEqual(JSON.parse('{"type": "http", "healthy": {"successes": 80, "http_statuses": [200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308]}, "unhealthy": {"http_statuses": [429, 500, 503], "tcp_failures": 0, "timeouts": 5, "http_failures": 5}}')) expect(JSON.parse(active)).toEqual(JSON.parse('{"concurrency": 10, "healthy": {"interval": 0, "http_statuses": [200, 302], "successes": 5}, "unhealthy": {"interval": 0, "tcp_failures": 0, "timeouts": 0, "http_failures": 5, "http_statuses": [429, 404, 500, 501, 502, 503, 504, 505]}, "headers": {}, "type": "http", "https_sni": null, "https_verify_certificate": true, "http_path": "/", "timeout": 1}')) - } + }, ) // disable passive health check @@ -553,7 +553,7 @@ test.describe('upstreams', () => { expect(JSON.parse(passive)).toEqual(JSON.parse('{"type": "http", "healthy": {"successes": 0, "http_statuses": [200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308]}, "unhealthy": {"http_statuses": [429, 500, 503], "tcp_failures": 0, "timeouts": 0, "http_failures": 0}}')) expect(JSON.parse(active)).toEqual(JSON.parse('{"concurrency": 10, "healthy": {"interval": 0, "http_statuses": [200, 302], "successes": 5}, "unhealthy": {"interval": 0, "tcp_failures": 0, "timeouts": 0, "http_failures": 5, "http_statuses": [429, 404, 500, 501, 502, 503, 504, 505]}, "headers": {}, "type": "http", "https_sni": null, "https_verify_certificate": true, "http_path": "/", "timeout": 1}')) - } + }, ) }) @@ -589,7 +589,7 @@ test.describe('upstreams', () => { expect(JSON.parse(passive)).toEqual(JSON.parse('{"type": "http", "healthy": {"successes": 80, "http_statuses": [200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308]}, "unhealthy": {"http_statuses": [429, 500, 503], "tcp_failures": 0, "timeouts": 5, "http_failures": 5}}')) expect(JSON.parse(active)).toEqual(JSON.parse('{"concurrency": 10, "healthy": {"interval": 5, "http_statuses": [200, 302], "successes": 5}, "unhealthy": {"interval": 5, "tcp_failures": 0, "timeouts": 0, "http_failures": 5, "http_statuses": [429, 404, 500, 501, 502, 503, 504, 505]}, "headers": {}, "type": "http", "https_sni": null, "https_verify_certificate": true, "http_path": "/", "timeout": 1}')) - } + }, ) await update_upstream( @@ -630,7 +630,7 @@ test.describe('upstreams', () => { expect(JSON.parse(passive)).toEqual(JSON.parse('{ "healthy": { "successes": 8, "http_statuses": [ 200 ] }, "type": "http", "unhealthy": { "timeouts": 10, "http_failures": 10, "http_statuses": [ 429, 500, 503, 100, 101 ], "tcp_failures": 0 } }')) expect(JSON.parse(active)).toEqual(JSON.parse('{ "headers": { "h1": [ "v1", "v2" ] }, "http_path": "/path", "https_sni": null, "concurrency": 15, "type": "http", "https_verify_certificate": true, "healthy": { "http_statuses": [ 200, 302, 100, 103 ], "successes": 10, "interval": 10 }, "unhealthy": { "timeouts": 10, "http_failures": 10, "http_statuses": [ 404, 429, 500, 501, 502, 503, 504, 505, 100, 101 ], "interval": 10, "tcp_failures": 0 }, "timeout": 5 }')) - } + }, ) }) @@ -672,7 +672,7 @@ test.describe('upstreams', () => { expect(JSON.parse(passive)).toEqual(JSON.parse('{ "healthy": { "successes": 80, "http_statuses": [ 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308 ] }, "type": "http", "unhealthy": { "timeouts": 5, "http_failures": 5, "http_statuses": [ 429, 500, 503 ], "tcp_failures": 0 } }')) expect(JSON.parse(active)).toEqual(JSON.parse(`{ "headers": {}, "http_path": "/", "https_sni": null, "concurrency": 10, "type": "${check_type.protocol}", "https_verify_certificate": true, "healthy": { "http_statuses": [ 200, 302 ], "successes": 5, "interval": 5 }, "unhealthy": { "timeouts": 0, "http_failures": 5, "http_statuses": [ 429, 404, 500, 501, 502, 503, 504, 505 ], "interval": 5, "tcp_failures": 0 }, "timeout": 1 }`)) } - } + }, ) }) } @@ -700,7 +700,7 @@ test.describe('upstreams', () => { expect(JSON.parse(passive)).toEqual(JSON.parse('{ "healthy": { "successes": 80, "http_statuses": [ 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308 ] }, "type": "tcp", "unhealthy": { "timeouts": 5, "http_failures": 0, "http_statuses": [ 429, 500, 503 ], "tcp_failures": 10 } }')) expect(JSON.parse(active)).toEqual(JSON.parse('{ "headers": {}, "http_path": "/", "https_sni": null, "concurrency": 10, "type": "tcp", "https_verify_certificate": true, "healthy": { "http_statuses": [ 200, 302 ], "successes": 5, "interval": 5 }, "unhealthy": { "timeouts": 0, "http_failures": 0, "http_statuses": [ 429, 404, 500, 501, 502, 503, 504, 505 ], "interval": 5, "tcp_failures": 6 }, "timeout": 1 }')) - } + }, ) }) @@ -719,7 +719,7 @@ test.describe('upstreams', () => { await expect(getPropertyValue(page, 'name')).toHaveText(newName) await page.getByTestId('header-edit-button').click() await expect(page.locator('.k-select.name-select input')).toHaveValue(newName) - } + }, ) }) }) diff --git a/tests/playwright/specs/vaults/01-Vaults.spec.ts b/tests/playwright/specs/vaults/01-Vaults.spec.ts index 9550234..e88a3b3 100644 --- a/tests/playwright/specs/vaults/01-Vaults.spec.ts +++ b/tests/playwright/specs/vaults/01-Vaults.spec.ts @@ -30,7 +30,7 @@ test.describe('vaults', () => { test('create a vault successful', async ({ page }) => { await withNavigation( page, - async () => await page.locator('.table-empty-state .primary').click() + async () => await page.locator('.table-empty-state .primary').click(), ) await expect(page.locator('.vault-form-provider-cards-container')).toBeVisible() @@ -65,7 +65,7 @@ test.describe('vaults', () => { 'vault-form-tags': mockTag, }, withAction: 'submit', - }) + }), ) await expect(page.locator('.k-table .table-wrapper [data-testid="tags"]')).toHaveText(mockTag) }) @@ -81,7 +81,7 @@ test.describe('vaults', () => { 'vault-form-tags': `${mockTag}${mockTag}`, }, withAction: 'cancel', - }) + }), ) await expect(page.locator('.k-table .table-wrapper [data-testid="tags"]')).toHaveText(mockTag) }) @@ -96,7 +96,7 @@ test.describe('vaults', () => { test('create a vault failure when prefix is "env"', async ({ page }) => { await withNavigation( page, - async () => await page.locator('.table-empty-state .primary').click() + async () => await page.locator('.table-empty-state .primary').click(), ) await expect(page.locator('.vault-form-provider-cards-container')).toBeVisible() diff --git a/yarn.lock b/yarn.lock index 938e970..dde1b04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -183,30 +183,54 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0": + version "4.10.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.1.tgz#361461e5cb3845d874e61731c11cfedd664d83a0" + integrity sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA== + +"@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1": version "4.10.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" - integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== +"@eslint/compat@^1.0.3": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@eslint/compat/-/compat-1.1.0.tgz#fdc7d19a66820770bf58ced0342153769d8686f0" + integrity sha512-s9Wi/p25+KbzxKlDm3VshQdImhWk+cbdblhwGNnyCU5lpSwtWa4v7VQCxSki0FAUrGA3s8nCWgYzAH41mwQVKQ== + +"@eslint/config-array@^0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.16.0.tgz#bb3364fc39ee84ec3a62abdc4b8d988d99dfd706" + integrity sha512-/jmuSd74i4Czf1XXn7wGRWZCuyaUZ330NH1Bek0Pplatt4Sy1S5haN21SCLLdbeKslQ+S0wEJ+++v5YibSi+Lg== + dependencies: + "@eslint/object-schema" "^2.1.4" + debug "^4.3.1" + minimatch "^3.0.5" + +"@eslint/eslintrc@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" + integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.54.0": - version "8.54.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" - integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== +"@eslint/js@9.5.0", "@eslint/js@^9.4.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.5.0.tgz#0e9c24a670b8a5c86bff97b40be13d8d8f238045" + integrity sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w== + +"@eslint/object-schema@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" + integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== "@floating-ui/core@^1.0.0": version "1.6.2" @@ -307,24 +331,15 @@ intl-messageformat "10.5.14" tslib "^2.4.0" -"@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== - dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" - minimatch "^3.0.5" - "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/retry@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" + integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== "@jridgewell/gen-mapping@^0.3.0": version "0.3.3" @@ -547,6 +562,25 @@ resolved "https://registry.yarnpkg.com/@kong/design-tokens/-/design-tokens-1.13.2.tgz#5c2c6ac3e22e7feac9ddaab49c99608555d0a2a8" integrity sha512-BXI7Nv+wucuG9mw0faXhBgb3ryN9pnMkHntI9HKf0h9BnBvuR8F+iLoCm/Fwo6TZ0tlO5bZTMVk1xc85lnlhBA== +"@kong/eslint-config-kong-ui@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@kong/eslint-config-kong-ui/-/eslint-config-kong-ui-1.1.0.tgz#231e12849900720c9c1a215286b6afc0a0a74933" + integrity sha512-PSZaL7IhVLmbojwpBPaKIfxLIBBLnYFIjjrr5Nbz0Ia4cSYFqdwkdFB3t5PnjLHWwQr0IpLgN5e2vGe1n9Hpig== + dependencies: + "@eslint/compat" "^1.0.3" + "@eslint/eslintrc" "^3.1.0" + "@eslint/js" "^9.4.0" + "@stylistic/eslint-plugin" "^2.1.0" + eslint-plugin-cypress "^3.3.0" + eslint-plugin-jsonc "^2.16.0" + eslint-plugin-n "^17.8.0" + eslint-plugin-promise "^6.2.0" + eslint-plugin-vue "^9.26.0" + globals "^15.3.0" + jsonc-eslint-parser "^2.4.0" + typescript-eslint "^7.12.0" + vue-eslint-parser "^9.4.3" + "@kong/icons@^1.12.0", "@kong/icons@^1.13.0": version "1.13.0" resolved "https://registry.yarnpkg.com/@kong/icons/-/icons-1.13.0.tgz#34dc40ef4962a6504789cb117668c003481c531f" @@ -821,21 +855,72 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz#5a2d08b81e8064b34242d5cc9973ef8dd1e60503" integrity sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w== -"@types/estree@1.0.5": +"@stylistic/eslint-plugin-js@2.2.1", "@stylistic/eslint-plugin-js@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.2.1.tgz#43b4c966101ccd6cad6c8d720800a5ccdf688abd" + integrity sha512-M2dQkKw2R4R+b1SJ/xElJ9bDVq/vCI31VpIIxkZD9KXCqbUHvtsGpZH3eO6MzmFWOZj4PfNdEQdP332MtqjCPg== + dependencies: + "@types/eslint" "^8.56.10" + acorn "^8.11.3" + eslint-visitor-keys "^4.0.0" + espree "^10.0.1" + +"@stylistic/eslint-plugin-jsx@2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.2.1.tgz#512f8d706de2a7f64f6425a126970fbac8e5b19d" + integrity sha512-J/R4tU38v8gVqKPy6Mh22dq8btLSPWK06SuRc/ryOxT8LpW2ZdcSDP4HNvQiOte0Wy9xzgKJHP4JlYauDZ/oVw== + dependencies: + "@stylistic/eslint-plugin-js" "^2.2.1" + "@types/eslint" "^8.56.10" + estraverse "^5.3.0" + picomatch "^4.0.2" + +"@stylistic/eslint-plugin-plus@2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.2.1.tgz#8537e4b5b50867761bc45537470690fd7adc520c" + integrity sha512-VGdTcQzZ/cZNcJnvjDos1VLzUerPapvYCVSCQZEhupMtmxt+mbITiJWzLLHYNfqGBnW7ABqViLfob+s3Q2GcKw== + dependencies: + "@types/eslint" "^8.56.10" + "@typescript-eslint/utils" "^7.12.0" + +"@stylistic/eslint-plugin-ts@2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.2.1.tgz#f942808a6135fad7b0b7690e27565968d78711fe" + integrity sha512-2AbpXGGorCEzDryth7RhOMJWlko+sxSs1lxL2tSXB5H/EffmXgLn1tMoMKgwYJW3s6v0BxJRr5BWj9B9JaZTUQ== + dependencies: + "@stylistic/eslint-plugin-js" "2.2.1" + "@types/eslint" "^8.56.10" + "@typescript-eslint/utils" "^7.12.0" + +"@stylistic/eslint-plugin@^2.1.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin/-/eslint-plugin-2.2.1.tgz#cdac8d1055f58d8fb28c25a8471dd663a48ef04f" + integrity sha512-YErqfwWFbRCpkyPtrcVYaJhvEn9aXE4WzxxkZ7Q3OKS4QD9CE6qZjzEw5DhcA2wL3Jo6JbzSB3/stJMNocGMgQ== + dependencies: + "@stylistic/eslint-plugin-js" "2.2.1" + "@stylistic/eslint-plugin-jsx" "2.2.1" + "@stylistic/eslint-plugin-plus" "2.2.1" + "@stylistic/eslint-plugin-ts" "2.2.1" + "@types/eslint" "^8.56.10" + +"@types/eslint@^8.56.10": + version "8.56.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/json-schema@^7.0.12": +"@types/json-schema@*": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - "@types/lodash-es@^4.17.12": version "4.17.12" resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b" @@ -878,100 +963,86 @@ resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.11.tgz#d3c98d788489d8376b7beac23863b1eebdd3c13c" integrity sha512-cNw5iH8JkMkb3QkCoe7DaZiawbDQEUX8t7iuQaRTyLOyQCR2h+ibBD4GJt7p5yhUHrlOeL7ZtbxNHeipqNsBzQ== -"@types/semver@^7.5.0": - version "7.5.6" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" - integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== - -"@typescript-eslint/eslint-plugin@^6.13.0": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.0.tgz#c239f9b3800ab14b5479a93812ddbe4a8fc64411" - integrity sha512-HTvbSd0JceI2GW5DHS3R9zbarOqjkM9XDR7zL8eCsBUO/eSiHcoNE7kSL5sjGXmVa9fjH5LCfHDXNnH4QLp7tQ== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.13.0" - "@typescript-eslint/type-utils" "6.13.0" - "@typescript-eslint/utils" "6.13.0" - "@typescript-eslint/visitor-keys" "6.13.0" - debug "^4.3.4" +"@typescript-eslint/eslint-plugin@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz#cdc521c8bca38b55585cf30db787fb2abad3f9fd" + integrity sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.13.1" + "@typescript-eslint/type-utils" "7.13.1" + "@typescript-eslint/utils" "7.13.1" + "@typescript-eslint/visitor-keys" "7.13.1" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^5.3.1" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^6.13.0": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.0.tgz#ddb2be591c347ff292165ecffbd0b6d508d7463a" - integrity sha512-VpG+M7GNhHLI/aTDctqAV0XbzB16vf+qDX9DXuMZSe/0bahzDA9AKZB15NDbd+D9M4cDsJvfkbGOA7qiZ/bWJw== +"@typescript-eslint/parser@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.13.1.tgz#fac57811b3e519185f7259bac312291f7b9c4e72" + integrity sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A== dependencies: - "@typescript-eslint/scope-manager" "6.13.0" - "@typescript-eslint/types" "6.13.0" - "@typescript-eslint/typescript-estree" "6.13.0" - "@typescript-eslint/visitor-keys" "6.13.0" + "@typescript-eslint/scope-manager" "7.13.1" + "@typescript-eslint/types" "7.13.1" + "@typescript-eslint/typescript-estree" "7.13.1" + "@typescript-eslint/visitor-keys" "7.13.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.13.0": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.0.tgz#343665d5c87c78ebea38ab4577ad3ece0751f331" - integrity sha512-2x0K2/CujsokIv+LN2T0l5FVDMtsCjkUyYtlcY4xxnxLAW+x41LXr16duoicHpGtLhmtN7kqvuFJ3zbz00Ikhw== +"@typescript-eslint/scope-manager@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz#c08041206904bf36f0e6997efdb0ca775e0c452e" + integrity sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg== dependencies: - "@typescript-eslint/types" "6.13.0" - "@typescript-eslint/visitor-keys" "6.13.0" + "@typescript-eslint/types" "7.13.1" + "@typescript-eslint/visitor-keys" "7.13.1" -"@typescript-eslint/type-utils@6.13.0": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.0.tgz#71e96a5f718b6857eba499136d109239c8f87f55" - integrity sha512-YHufAmZd/yP2XdoD3YeFEjq+/Tl+myhzv+GJHSOz+ro/NFGS84mIIuLU3pVwUcauSmwlCrVXbBclkn1HfjY0qQ== +"@typescript-eslint/type-utils@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz#63bec3f1fb43cf0bc409cbdb88ef96d118ca8632" + integrity sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg== dependencies: - "@typescript-eslint/typescript-estree" "6.13.0" - "@typescript-eslint/utils" "6.13.0" + "@typescript-eslint/typescript-estree" "7.13.1" + "@typescript-eslint/utils" "7.13.1" debug "^4.3.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@6.13.0": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.0.tgz#45147f658ae0aa33a3999cdf1727613d6467c271" - integrity sha512-oXg7DFxx/GmTrKXKKLSoR2rwiutOC7jCQ5nDH5p5VS6cmHE1TcPTaYQ0VPSSUvj7BnNqCgQ/NXcTBxn59pfPTQ== +"@typescript-eslint/types@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.13.1.tgz#787db283bd0b58751094c90d5b58bbf5e9fc9bd8" + integrity sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw== -"@typescript-eslint/typescript-estree@6.13.0": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.0.tgz#4975f49c1a7a035720bc2b1f7862a61d30d52943" - integrity sha512-IT4O/YKJDoiy/mPEDsfOfp+473A9GVqXlBKckfrAOuVbTqM8xbc0LuqyFCcgeFWpqu3WjQexolgqN2CuWBYbog== +"@typescript-eslint/typescript-estree@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz#3412841b130e070db2f675e3d9b8cb1ae49e1c3f" + integrity sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw== dependencies: - "@typescript-eslint/types" "6.13.0" - "@typescript-eslint/visitor-keys" "6.13.0" + "@typescript-eslint/types" "7.13.1" + "@typescript-eslint/visitor-keys" "7.13.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@6.13.0": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.0.tgz#f2ee6ba06cf76c1879fd7dfceb6a5f886d70985c" - integrity sha512-V+txaxARI8yznDkcQ6FNRXxG+T37qT3+2NsDTZ/nKLxv6VfGrRhTnuvxPUxpVuWWr+eVeIxU53PioOXbz8ratQ== +"@typescript-eslint/utils@7.13.1", "@typescript-eslint/utils@^7.12.0": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.13.1.tgz#611083379caa0d3a2c09d126c65065a3e4337ba2" + integrity sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.13.0" - "@typescript-eslint/types" "6.13.0" - "@typescript-eslint/typescript-estree" "6.13.0" - semver "^7.5.4" + "@typescript-eslint/scope-manager" "7.13.1" + "@typescript-eslint/types" "7.13.1" + "@typescript-eslint/typescript-estree" "7.13.1" -"@typescript-eslint/visitor-keys@6.13.0": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.0.tgz#1b57d83fb74e2d7a02382e1ee6abda92ca5973f4" - integrity sha512-UQklteCEMCRoq/1UhKFZsHv5E4dN1wQSzJoxTfABasWk1HgJRdg1xNUve/Kv/Sdymt4x+iEzpESOqRFlQr/9Aw== +"@typescript-eslint/visitor-keys@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz#9c229a795a919db61f2d7f2337ef584ac05fbe96" + integrity sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA== dependencies: - "@typescript-eslint/types" "6.13.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@typescript-eslint/types" "7.13.1" + eslint-visitor-keys "^3.4.3" "@vitejs/plugin-vue@^5.0.4": version "5.0.4" @@ -1112,6 +1183,11 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== +acorn@^8.11.3, acorn@^8.12.0, acorn@^8.5.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.0.tgz#1627bfa2e058148036133b8d9b51a700663c294c" + integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== + acorn@^8.8.0: version "8.9.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" @@ -1211,74 +1287,11 @@ aria-query@^5.3.0: dependencies: dequal "^2.0.3" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" - arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -1320,11 +1333,6 @@ autoprefixer@^10.4.14: picocolors "^1.0.0" postcss-value-parser "^4.2.0" -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - axios@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.0.tgz#f1e5292f26b2fd5c2e66876adc5b06cdbd7d2102" @@ -1396,35 +1404,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -builtin-modules@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - -builtins@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== - dependencies: - semver "^7.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1705,14 +1684,14 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@^4.3.1: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: - ms "^2.1.1" + ms "2.1.2" -debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1742,28 +1721,11 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1781,20 +1743,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dom-serializer@^1.0.1: version "1.4.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" @@ -1900,6 +1848,14 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +enhanced-resolve@^5.17.0: + version "5.17.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz#d037603789dd9555b89aaec7eb78845c49089bc5" + integrity sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" @@ -1917,76 +1873,6 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - esbuild@^0.20.1: version "0.20.2" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" @@ -2031,83 +1917,54 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-compat-utils@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz#f45e3b5ced4c746c127cf724fb074cd4e730d653" - integrity sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg== - -eslint-config-standard@^17.1.0: - version "17.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" - integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== - -eslint-import-resolver-alias@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-alias/-/eslint-import-resolver-alias-1.1.2.tgz#297062890e31e4d6651eb5eba9534e1f6e68fc97" - integrity sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w== - -eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== +eslint-compat-utils@^0.5.0, eslint-compat-utils@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz#7fc92b776d185a70c4070d03fd26fde3d59652e4" + integrity sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q== dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" + semver "^7.5.4" -eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== +eslint-plugin-cypress@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-3.3.0.tgz#4ab963193d21ad22aca8379e1d15ba02619ae8db" + integrity sha512-HPHMPzYBIshzJM8wqgKSKHG2p/8R0Gbg4Pb3tcdC9WrmkuqxiKxSKbjunUrajhV5l7gCIFrh1P7C7GuBqH6YuQ== dependencies: - debug "^3.2.7" + globals "^13.20.0" -eslint-plugin-es-x@^7.1.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.4.0.tgz#ae3132b5502c28821e3e6eb80314123a4143a87c" - integrity sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw== +eslint-plugin-es-x@^7.5.0: + version "7.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.7.0.tgz#26a2e96ac9d5b510dec4635c7e30ec5b7b142a3f" + integrity sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig== dependencies: "@eslint-community/eslint-utils" "^4.1.2" "@eslint-community/regexpp" "^4.6.0" - eslint-compat-utils "^0.1.2" - -eslint-plugin-import@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== - dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" - semver "^6.3.1" - tsconfig-paths "^3.14.2" + eslint-compat-utils "^0.5.1" -eslint-plugin-n@^16.3.1: - version "16.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz#6cd377d1349fed10854b6535392e91fb4123193b" - integrity sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw== +eslint-plugin-jsonc@^2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.16.0.tgz#e90eca15aa2e172f5aca52a77fc8c819f52862d7" + integrity sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + eslint-compat-utils "^0.5.0" + espree "^9.6.1" + graphemer "^1.4.0" + jsonc-eslint-parser "^2.0.4" + natural-compare "^1.4.0" + synckit "^0.6.0" + +eslint-plugin-n@^17.8.0: + version "17.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.9.0.tgz#91b43d4e10a35e455bfac2c64671f9cecc396590" + integrity sha512-CPSaXDXdrT4nsrOrO4mT4VB6FMUkoySRkHWuuJJHVqsIEjIeZgMY1H7AzSwPbDScikBmLN82KeM1u7ixV7PzGg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - builtins "^5.0.1" - eslint-plugin-es-x "^7.1.0" + enhanced-resolve "^5.17.0" + eslint-plugin-es-x "^7.5.0" get-tsconfig "^4.7.0" + globals "^15.0.0" ignore "^5.2.4" - is-builtin-module "^3.2.1" - is-core-module "^2.12.1" - minimatch "^3.1.2" - resolve "^1.22.2" + minimatch "^9.0.0" semver "^7.5.3" eslint-plugin-playwright@^0.18.0: @@ -2117,15 +1974,15 @@ eslint-plugin-playwright@^0.18.0: dependencies: globals "^13.23.0" -eslint-plugin-promise@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" - integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== +eslint-plugin-promise@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz#e24ab0e3c0a25fa227d98d9ff612156b5af15945" + integrity sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA== -eslint-plugin-vue@^9.25.0: - version "9.25.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz#615cb7bb6d0e2140d21840b9aa51dce69e803e7a" - integrity sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA== +eslint-plugin-vue@^9.26.0: + version "9.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz#bf7f5cce62c8f878059b91edae44d22974133af5" + integrity sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" globals "^13.24.0" @@ -2153,59 +2010,60 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc" + integrity sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== +eslint-visitor-keys@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" + integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== -eslint@^8.54.0: - version "8.54.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" - integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== +eslint@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.5.0.tgz#11856034b94a9e1a02cfcc7e96a9f0956963cd2f" + integrity sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.54.0" - "@humanwhocodes/config-array" "^0.11.13" + "@eslint/config-array" "^0.16.0" + "@eslint/eslintrc" "^3.1.0" + "@eslint/js" "9.5.0" "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^8.0.1" + eslint-visitor-keys "^4.0.0" + espree "^10.0.1" + esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" @@ -2215,16 +2073,16 @@ eslint@^8.54.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.3.1: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== +espree@^10.0.1: + version "10.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.1.0.tgz#8788dae611574c0f070691f522e4116c5a11fc56" + integrity sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA== dependencies: - acorn "^8.8.0" + acorn "^8.12.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.0.0" -espree@^9.6.0, espree@^9.6.1: +espree@^9.0.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -2233,7 +2091,16 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esquery@^1.4.0, esquery@^1.4.2: +espree@^9.3.1: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.0, esquery@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== @@ -2247,7 +2114,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -2349,6 +2216,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -2379,6 +2253,14 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + flat@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/flat/-/flat-6.0.1.tgz#09070cf918293b401577f20843edeadf4d3e8755" @@ -2389,6 +2271,11 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + focus-trap-vue@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/focus-trap-vue/-/focus-trap-vue-4.0.3.tgz#c13f19d94e666c5144498793e93e51e0c46c2660" @@ -2406,13 +2293,6 @@ follow-redirects@^1.15.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -2456,64 +2336,16 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - get-tsconfig@^4.7.0: version "4.7.2" resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" @@ -2563,10 +2395,10 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== +globals@^13.20.0, globals@^13.24.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" @@ -2577,19 +2409,15 @@ globals@^13.23.0: dependencies: type-fest "^0.20.2" -globals@^13.24.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" +globals@^15.0.0, globals@^15.3.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.6.0.tgz#3872d3ab4427e1df4718efd3f7d2c721c503f65f" + integrity sha512-UzcJi88Hw//CurUIRa9Jxb0vgOCcuD/MNjwmXp633cyaRKkCWACkoqHCtfZv43b1kqXGg/fpOa8bwgacCeXsVg== globby@^11.1.0: version "11.1.0" @@ -2608,14 +2436,7 @@ globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -2630,11 +2451,6 @@ hard-rejection@^2.1.0: resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2645,30 +2461,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -2676,13 +2468,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - he@1.2.0, he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -2738,6 +2523,11 @@ ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +ignore@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + immutable@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" @@ -2789,15 +2579,6 @@ ini@^1.3.5: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - intl-messageformat@10.5.14, intl-messageformat@^10.5.14: version "10.5.14" resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.14.tgz#e5bb373f8a37b88fbe647d7b941f3ab2a37ed00a" @@ -2813,27 +2594,11 @@ ipaddr.js@^2.1.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -2841,40 +2606,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-builtin-module@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" - integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== - dependencies: - builtin-modules "^3.3.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.11.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - -is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.13.1: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - is-core-module@^2.5.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" @@ -2882,13 +2613,6 @@ is-core-module@^2.5.0: dependencies: has "^1.0.3" -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" @@ -2916,18 +2640,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -2948,65 +2660,11 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - is-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-typed-array@^1.1.12: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -3014,11 +2672,6 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3051,6 +2704,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -3071,12 +2729,15 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== +jsonc-eslint-parser@^2.0.4, jsonc-eslint-parser@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz#74ded53f9d716e8d0671bd167bf5391f452d5461" + integrity sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg== dependencies: - minimist "^1.2.0" + acorn "^8.5.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" + semver "^7.3.5" jsonfile@^6.0.1: version "6.1.0" @@ -3087,6 +2748,13 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -3323,6 +2991,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.0, minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + minimatch@^9.0.3: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" @@ -3339,11 +3014,6 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - monaco-editor@0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.21.3.tgz#3381b66614b64d1c5e3b77dd5564ad496d1b4e5d" @@ -3354,11 +3024,6 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - muggle-string@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.4.1.tgz#3b366bd43b32f809dc20659534dd30e7c8a0d328" @@ -3439,59 +3104,11 @@ nth-check@^2.0.1, nth-check@^2.1.1: dependencies: boolbase "^1.0.0" -object-inspect@^1.12.3, object-inspect@^1.9.0: +object-inspect@^1.12.3: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - -object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -3613,11 +3230,6 @@ path-key@^4.0.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -3638,6 +3250,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + pidtree@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" @@ -3822,15 +3439,6 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -3861,24 +3469,6 @@ resolve-pkg-maps@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.22.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -3953,25 +3543,6 @@ rxjs@^7.8.0: dependencies: tslib "^2.1.0" -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - sass@^1.63.4: version "1.63.4" resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.4.tgz#caf60643321044c61f6a0fe638a07abbd31cfb5d" @@ -3986,12 +3557,7 @@ scule@^1.0.0: resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3" integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.0.0, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.5.3, semver@^7.5.4: +semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -4003,25 +3569,6 @@ semver@^7.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.1.tgz#60bfe090bf907a25aa8119a72b9f90ef7ca281b2" integrity sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA== -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== - dependencies: - define-data-property "^1.0.1" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -4034,15 +3581,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - signal-exit@^3.0.2, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" @@ -4166,33 +3704,6 @@ string-width@^5.0.0: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -4207,11 +3718,6 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - strip-final-newline@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" @@ -4345,11 +3851,6 @@ supports-hyperlinks@^3.0.0: has-flag "^4.0.0" supports-color "^7.0.0" -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -4360,6 +3861,13 @@ swrv@^1.0.4: resolved "https://registry.yarnpkg.com/swrv/-/swrv-1.0.4.tgz#278b4811ed4acbb1ae46654972a482fd1847e480" integrity sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g== +synckit@^0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.6.2.tgz#e1540b97825f2855f7170b98276e8463167f33eb" + integrity sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA== + dependencies: + tslib "^2.3.1" + tabbable@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" @@ -4376,6 +3884,11 @@ table@^6.8.1: string-width "^4.2.3" strip-ansi "^6.0.1" +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + terser@^5.10.0: version "5.18.2" resolved "https://registry.yarnpkg.com/terser/-/terser-5.18.2.tgz#ff3072a0faf21ffd38f99acc9a0ddf7b5f07b948" @@ -4408,20 +3921,10 @@ trim-newlines@^4.0.2: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== - -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" +ts-api-utils@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== tslib@^1.9.3: version "1.14.1" @@ -4438,6 +3941,11 @@ tslib@^2.1.0, tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== +tslib@^2.3.1: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + tslib@^2.6.1, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -4472,60 +3980,20 @@ type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== +typescript-eslint@^7.12.0: + version "7.13.1" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-7.13.1.tgz#8bbcc4b59b6bb0c457505ee17a356b1868c3fcd5" + integrity sha512-pvLEuRs8iS9s3Cnp/Wt//hpK8nKc8hVa3cLljHqzaJJQYP8oys8GUyIFqtlev+2lT/fqMPcyQko+HJ6iYK3nFA== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" + "@typescript-eslint/eslint-plugin" "7.13.1" + "@typescript-eslint/parser" "7.13.1" + "@typescript-eslint/utils" "7.13.1" typescript@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -4653,6 +4121,19 @@ vue-eslint-parser@^9.4.2: lodash "^4.17.21" semver "^7.3.6" +vue-eslint-parser@^9.4.3: + version "9.4.3" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + vue-router@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.3.2.tgz#08096c7765dacc6832f58e35f7a081a8b34116a7" @@ -4693,28 +4174,6 @@ vue@^3.4.27: "@vue/server-renderer" "3.4.27" "@vue/shared" "3.4.27" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"