From d6f6f7c54c153e52e1306649651da7025c21a821 Mon Sep 17 00:00:00 2001 From: marcelofukumoto Date: Fri, 23 Oct 2026 17:58:19 +0000 Subject: [PATCH] chore(deps): bump @rancher/shell to 3.0.14 (#1208) * chore(deps): bump @rancher/shell to 3.0.14 3.0.14 resolves [[name]] tokens in translations from values registered as l10n globals, which the standalone UI needs to pick the product name. Signed-off-by: Marcelo Fukumoto * fix: save cloud-config template edits with @rancher/shell 3.0.14 The YamlEditor of shell 3.0.14 no longer emits onChanges, so editing a template saved its old cloud config. Copy the text from update:value, which both shell versions emit. Jest transforms @replit/codemirror-vim-core, an ESM-only dependency of the new YamlEditor, like the dashboard does. Signed-off-by: Marcelo Fukumoto * fix: keep the YAML editor heights with CodeMirror 6 The min-height rules targeted the CodeMirror 5 element, so the editors shrank to their text. Signed-off-by: Marcelo Fukumoto * fix: reject IP ranges the network settings don't support The CIDR check of @rancher/shell 3.0.14 also accepts short forms such as 10.1/16, extra parts and IPv6, so the VM migration, RWX and storage network settings saved them. Use a strict IPv4 CIDR check of our own. Signed-off-by: Marcelo Fukumoto * fix: keep the look of the file selector buttons The FileSelector of @rancher/shell 3.0.14 no longer takes button classes and renders a medium secondary button. Pass the variant and size that match the previous primary and secondary buttons. Signed-off-by: Marcelo Fukumoto * fix: keep Enter in a migration wizard field on the same step The Wizard of @rancher/shell 3.0.14 renders its step headers as submit buttons, so Enter in a text field clicked the first one and jumped back to step 1. Signed-off-by: Marcelo Fukumoto * fix: show the created message after a restore, upgrade or upload Since @rancher/shell 3.0.14, save() no longer shows the message for resources with a generated name; callers show it with notifyGeneratedName(). Signed-off-by: Marcelo Fukumoto * refactor: fold the logging output buffer with the CodeMirror 6 helpers The YAML editor of @rancher/shell 3.0.14 is CodeMirror 6, and its CodeMirror 5 methods are deprecated. Signed-off-by: Marcelo Fukumoto * fix: keep the shell's table views off in standalone @rancher/shell 3.0.14 turns its table views on for every list in the standalone UI, as the server has no ui-configurable-tables feature and the default is on. The table views drop the filters the lists put in the table header, which also left the Images list empty. Add the feature, disabled, to the management store in standalone only. Signed-off-by: Marcelo Fukumoto * fix: reject zero-padded octets in IP ranges Signed-off-by: Marcelo Fukumoto --------- Signed-off-by: Marcelo Fukumoto --- jest.config.js | 5 +- package.json | 2 +- pkg/harvester/components/HarvesterUpgrade.vue | 1 + .../components/settings/additional-ca.vue | 3 +- .../components/settings/rancher-cluster.vue | 7 +- .../components/settings/rwx-network.vue | 2 +- .../components/settings/ssl-certificates.vue | 9 +- .../components/settings/storage-network.vue | 2 +- .../settings/vm-migration-network.vue | 2 +- pkg/harvester/config/harvester-cluster.js | 13 + .../harvesterhci.io.cloudtemplate.test.js | 141 ++++ .../edit/harvesterhci.io.cloudtemplate.vue | 10 +- .../edit/harvesterhci.io.keypair.vue | 3 +- .../edit/harvesterhci.io.logging.output.vue | 9 +- .../harvesterhci.io.virtualmachinebackup.vue | 1 + .../harvesterhci.io.virtualmachineimage.vue | 1 + .../edit/harvesterhci.io.vmsnapshot.vue | 1 + .../DataTemplate.vue | 2 +- .../VirtualMachineCloudConfig/index.vue | 2 +- .../VirtualMachineWindowsSysprep/index.vue | 2 +- .../pages/c/_cluster/airgapupgrade/index.vue | 3 + .../pages/c/_cluster/brand/index.vue | 9 +- .../_cluster/vm-migration/provider-wizard.vue | 2 + .../vm-migration/vm-migration-wizard.vue | 2 + pkg/harvester/utils/__tests__/regular.test.js | 32 + .../utils/__tests__/table-views.test.js | 21 + pkg/harvester/utils/__tests__/wizard.test.js | 37 + pkg/harvester/utils/regular.js | 9 + pkg/harvester/utils/table-views.js | 19 + pkg/harvester/utils/wizard.js | 12 + yarn.lock | 723 ++++++++++++++---- 31 files changed, 898 insertions(+), 189 deletions(-) create mode 100644 pkg/harvester/edit/__tests__/harvesterhci.io.cloudtemplate.test.js create mode 100644 pkg/harvester/utils/__tests__/regular.test.js create mode 100644 pkg/harvester/utils/__tests__/table-views.test.js create mode 100644 pkg/harvester/utils/__tests__/wizard.test.js create mode 100644 pkg/harvester/utils/table-views.js create mode 100644 pkg/harvester/utils/wizard.js diff --git a/jest.config.js b/jest.config.js index 13f43dbf..1e7cd0f5 100644 --- a/jest.config.js +++ b/jest.config.js @@ -39,7 +39,8 @@ module.exports = { '^.+\\.svg$': '/svgTransform.js', }, transformIgnorePatterns: [ - // @rancher/shell is shipped untranspiled, the other packages are ESM-only - '/node_modules/(?!(@rancher/shell|color|color-string|color-convert|color-name|vee-validate|@vee-validate|clipboard-polyfill|intl-messageformat|@formatjs)/)', + // @rancher/shell is shipped untranspiled, the other packages are ESM-only. @replit/codemirror-vim-core is + // required by the CommonJS build of @replit/codemirror-vim, which the shell's YamlEditor imports + '/node_modules/(?!(@rancher/shell|color|color-string|color-convert|color-name|vee-validate|@vee-validate|clipboard-polyfill|intl-messageformat|@formatjs|@replit/codemirror-vim-core)/)', ], }; diff --git a/package.json b/package.json index 0592c05b..6c016441 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "dependencies": { "@babel/plugin-transform-class-static-block": "7.29.7", "@novnc/novnc": "1.7.0", - "@rancher/shell": "3.0.13", + "@rancher/shell": "3.0.14", "@vue-flow/background": "^1.3.0", "@vue-flow/controls": "^1.1.1", "@vue-flow/core": "^1.33.5", diff --git a/pkg/harvester/components/HarvesterUpgrade.vue b/pkg/harvester/components/HarvesterUpgrade.vue index dfbc6eb5..c0aabbdb 100644 --- a/pkg/harvester/components/HarvesterUpgrade.vue +++ b/pkg/harvester/components/HarvesterUpgrade.vue @@ -128,6 +128,7 @@ export default { try { await proxyResource.save(); + proxyResource.notifyGeneratedName?.(); this.cancel(); } catch (err) { diff --git a/pkg/harvester/components/settings/additional-ca.vue b/pkg/harvester/components/settings/additional-ca.vue index 4e4710b2..e3b29928 100644 --- a/pkg/harvester/components/settings/additional-ca.vue +++ b/pkg/harvester/components/settings/additional-ca.vue @@ -19,7 +19,8 @@ export default {
diff --git a/pkg/harvester/components/settings/rancher-cluster.vue b/pkg/harvester/components/settings/rancher-cluster.vue index 9b2ea06a..a9386169 100644 --- a/pkg/harvester/components/settings/rancher-cluster.vue +++ b/pkg/harvester/components/settings/rancher-cluster.vue @@ -191,7 +191,8 @@ export default { >
@@ -213,9 +214,7 @@ $yaml-height: 540px; :deep() .yaml-editor{ flex: 1; min-height: $yaml-height; - & .code-mirror .CodeMirror { - position: initial; - height: auto; + & .code-mirror .cm-editor { min-height: $yaml-height; } } diff --git a/pkg/harvester/components/settings/rwx-network.vue b/pkg/harvester/components/settings/rwx-network.vue index 6185fd11..7dd89c5b 100644 --- a/pkg/harvester/components/settings/rwx-network.vue +++ b/pkg/harvester/components/settings/rwx-network.vue @@ -3,7 +3,7 @@ import { LabeledInput } from '@components/Form/LabeledInput'; import LabeledSelect from '@shell/components/form/LabeledSelect.vue'; import { RadioGroup } from '@components/Form/Radio'; import ArrayList from '@shell/components/form/ArrayList'; -import { isValidCIDR } from '@shell/utils/validators/cidr'; +import { isValidCIDR } from '@pkg/harvester/utils/regular'; import { _EDIT } from '@shell/config/query-params'; import { Banner } from '@components/Banner'; import { allHash } from '@shell/utils/promise'; diff --git a/pkg/harvester/components/settings/ssl-certificates.vue b/pkg/harvester/components/settings/ssl-certificates.vue index a3e75237..76030058 100644 --- a/pkg/harvester/components/settings/ssl-certificates.vue +++ b/pkg/harvester/components/settings/ssl-certificates.vue @@ -62,7 +62,8 @@ export default {
@@ -80,7 +81,8 @@ export default {
@@ -98,7 +100,8 @@ export default {
diff --git a/pkg/harvester/components/settings/storage-network.vue b/pkg/harvester/components/settings/storage-network.vue index ae3bb837..8f1f09ec 100644 --- a/pkg/harvester/components/settings/storage-network.vue +++ b/pkg/harvester/components/settings/storage-network.vue @@ -3,7 +3,7 @@ import { LabeledInput } from '@components/Form/LabeledInput'; import LabeledSelect from '@shell/components/form/LabeledSelect.vue'; import { RadioGroup } from '@components/Form/Radio'; import ArrayList from '@shell/components/form/ArrayList'; -import { isValidCIDR } from '@shell/utils/validators/cidr'; +import { isValidCIDR } from '@pkg/harvester/utils/regular'; import { _EDIT } from '@shell/config/query-params'; import { Banner } from '@components/Banner'; import Tip from '@shell/components/Tip'; diff --git a/pkg/harvester/components/settings/vm-migration-network.vue b/pkg/harvester/components/settings/vm-migration-network.vue index b925b538..8e97ac12 100644 --- a/pkg/harvester/components/settings/vm-migration-network.vue +++ b/pkg/harvester/components/settings/vm-migration-network.vue @@ -5,7 +5,7 @@ import { RadioGroup } from '@components/Form/Radio'; import { Banner } from '@components/Banner'; import ArrayList from '@shell/components/form/ArrayList'; import { allHash } from '@shell/utils/promise'; -import { isValidCIDR } from '@shell/utils/validators/cidr'; +import { isValidCIDR } from '@pkg/harvester/utils/regular'; import { NODE } from '@shell/config/types'; import { _EDIT } from '@shell/config/query-params'; import { HCI } from '../../types'; diff --git a/pkg/harvester/config/harvester-cluster.js b/pkg/harvester/config/harvester-cluster.js index 7aa32da9..19c40ec0 100644 --- a/pkg/harvester/config/harvester-cluster.js +++ b/pkg/harvester/config/harvester-cluster.js @@ -59,6 +59,8 @@ import { ADD_ONS } from './harvester-map'; import { registerAddonSideNav } from '../utils/dynamic-nav'; import { setVendor } from '@shell/config/private-label'; import { createCssVars } from '@shell/utils/color'; +import { CONFIGURABLE_TABLES } from '@shell/store/features'; +import { tableViewsOffFeature } from '../utils/table-views'; const TEMPLATE = HCI.VM_VERSION; const MONITORING_GROUP = 'Monitoring & Logging::Monitoring'; @@ -156,6 +158,17 @@ export function init($plugin, store) { }, { immediate: true } ); + + // Keep the shell's table views off: they drop the filters the lists put in the table header + store.watch( + (_state, getters) => getters['management/byId'](MANAGEMENT.FEATURE, CONFIGURABLE_TABLES), + (feature) => { + if (!feature) { + store.dispatch('management/load', { data: tableViewsOffFeature() }); + } + }, + { immediate: true } + ); } product({ diff --git a/pkg/harvester/edit/__tests__/harvesterhci.io.cloudtemplate.test.js b/pkg/harvester/edit/__tests__/harvesterhci.io.cloudtemplate.test.js new file mode 100644 index 00000000..5515bbfe --- /dev/null +++ b/pkg/harvester/edit/__tests__/harvesterhci.io.cloudtemplate.test.js @@ -0,0 +1,141 @@ +import { mount } from '@vue/test-utils'; +import { _CREATE, _EDIT, _VIEW } from '@shell/config/query-params'; +import YamlEditor from '@shell/components/YamlEditor'; +import { HCI } from '@pkg/harvester/config/labels-annotations'; +import HarvesterEditCloudTemplate from '../harvesterhci.io.cloudtemplate.vue'; + +const OLD_CONFIG = '#cloud-config\npassword: old\n'; +const NEW_CONFIG = '#cloud-config\npassword: new\n'; + +// A cloud-config template as the store gives it, `save` records what would be sent to the API +function cloudTemplate({ isNew = false } = {}) { + const value = { + type: 'configmap', + metadata: { + name: 'tpl', + namespace: 'default', + ...(isNew ? {} : { labels: { [HCI.CLOUD_INIT]: 'user' } }), + }, + data: isNew ? undefined : { cloudInit: OLD_CONFIG }, + $dispatch: jest.fn(), + save: () => Promise.resolve(), + saved: [], + }; + + jest.spyOn(value, 'save').mockImplementation(() => { + value.saved.push(JSON.parse(JSON.stringify({ metadata: value.metadata, data: value.data }))); + + return Promise.resolve(); + }); + + return value; +} + +// The real shell YamlEditor, with only its CodeMirror editor stubbed, so the events the form listens to are the +// ones the shell emits +function mountForm(mode, value) { + return mount(HarvesterEditCloudTemplate, { + props: { value, mode }, + global: { + stubs: { + CruResource: { template: '
' }, + Tabbed: { template: '
' }, + Tab: { template: '
' }, + NameNsDescription: true, + LabeledSelect: true, + CodeMirror: { + name: 'CodeMirror', template: '
', emits: ['onInput', 'onReady', 'validationChanged'] + }, + FileDiff: true, + }, + mocks: { + $store: { + getters: { + 'prefs/get': jest.fn(), + 'type-map/isSpoofed': () => false, + currentStore: () => 'harvester', + 'harvester/schemaFor': () => ({ linkFor: () => '/v1/harvester/configmaps' }), + 'i18n/t': (key) => key, + }, + }, + $router: { replace: jest.fn() }, + $route: { + name: 'c-cluster-product-resource-id', params: {}, query: {} + }, + }, + }, + }); +} + +// What a user typing in the editor does: CodeMirror reports the new text to the YamlEditor +async function typeInEditor(wrapper, text) { + wrapper.findComponent(YamlEditor).findComponent({ name: 'CodeMirror' }).vm.$emit('onInput', text); + await wrapper.vm.$nextTick(); +} + +describe('component: HarvesterEditCloudTemplate', () => { + it('should save the edited cloud config when editing a template', async() => { + const value = cloudTemplate(); + const wrapper = mountForm(_EDIT, value); + + await typeInEditor(wrapper, NEW_CONFIG); + await wrapper.vm.save(jest.fn()); + + expect(value.save).toHaveBeenCalledTimes(1); + expect(value.saved[0].data).toStrictEqual({ cloudInit: NEW_CONFIG }); + }); + + it('should keep the template type label when editing a template', async() => { + const value = cloudTemplate(); + const wrapper = mountForm(_EDIT, value); + + await typeInEditor(wrapper, NEW_CONFIG); + await wrapper.vm.save(jest.fn()); + + expect(value.saved[0].metadata.labels).toStrictEqual({ [HCI.CLOUD_INIT]: 'user' }); + }); + + it('should save the last text when the cloud config is edited several times', async() => { + const value = cloudTemplate(); + const wrapper = mountForm(_EDIT, value); + + await typeInEditor(wrapper, '#cloud-config\n'); + await typeInEditor(wrapper, NEW_CONFIG); + await wrapper.vm.save(jest.fn()); + + expect(value.saved[0].data).toStrictEqual({ cloudInit: NEW_CONFIG }); + }); + + it('should save the cloud config unchanged when only saving a template', async() => { + const value = cloudTemplate(); + const wrapper = mountForm(_EDIT, value); + + await wrapper.vm.save(jest.fn()); + + expect(value.saved[0].data).toStrictEqual({ cloudInit: OLD_CONFIG }); + }); + + it('should save the cloud config and the template type when creating a template', async() => { + const value = cloudTemplate({ isNew: true }); + const wrapper = mountForm(_CREATE, value); + + await typeInEditor(wrapper, NEW_CONFIG); + await wrapper.vm.save(jest.fn()); + + expect(value.save).toHaveBeenCalledWith({ url: '/v1/harvester/configmaps' }); + expect(value.saved[0]).toStrictEqual({ + metadata: { + name: 'tpl', namespace: 'default', labels: { [HCI.CLOUD_INIT]: 'user' } + }, + data: { cloudInit: NEW_CONFIG }, + }); + }); + + it('should show the template cloud config in the editor when viewing a template', () => { + const value = cloudTemplate(); + const wrapper = mountForm(_VIEW, value); + + expect(wrapper.findComponent(YamlEditor).props('value')).toBe(OLD_CONFIG); + expect(value.data).toStrictEqual({ cloudInit: OLD_CONFIG }); + }); +}); diff --git a/pkg/harvester/edit/harvesterhci.io.cloudtemplate.vue b/pkg/harvester/edit/harvesterhci.io.cloudtemplate.vue index ffbd8e40..15ddb48b 100644 --- a/pkg/harvester/edit/harvesterhci.io.cloudtemplate.vue +++ b/pkg/harvester/edit/harvesterhci.io.cloudtemplate.vue @@ -59,8 +59,8 @@ export default { }, methods: { - update() { - this.value.data = { cloudInit: this.config }; + update(config) { + this.value.data = { cloudInit: config }; }, updateBeforeSave() { @@ -119,7 +119,7 @@ export default { :mode="mode" class="yaml-editor" :editor-mode="mode === 'view' ? 'VIEW_CODE' : 'EDIT_CODE'" - @onChanges="update" + @update:value="update" />
@@ -133,9 +133,7 @@ export default { :deep() .yaml-editor{ flex: 1; min-height: $yaml-height; - & .code-mirror .CodeMirror { - position: initial; - height: auto; + & .code-mirror .cm-editor { min-height: $yaml-height; } } diff --git a/pkg/harvester/edit/harvesterhci.io.keypair.vue b/pkg/harvester/edit/harvesterhci.io.keypair.vue index ba29fb7d..11cd6f1d 100644 --- a/pkg/harvester/edit/harvesterhci.io.keypair.vue +++ b/pkg/harvester/edit/harvesterhci.io.keypair.vue @@ -88,7 +88,8 @@ export default {
diff --git a/pkg/harvester/pages/c/_cluster/vm-migration/vm-migration-wizard.vue b/pkg/harvester/pages/c/_cluster/vm-migration/vm-migration-wizard.vue index 7e2ffb7d..f70c4bfd 100644 --- a/pkg/harvester/pages/c/_cluster/vm-migration/vm-migration-wizard.vue +++ b/pkg/harvester/pages/c/_cluster/vm-migration/vm-migration-wizard.vue @@ -10,6 +10,7 @@ import ReviewMigrationStep from '@pkg/harvester/components/vm-migration/ReviewMi import { PRODUCT_NAME } from '@pkg/harvester/config/harvester'; import { currentRouter } from '@pkg/harvester/utils/router'; import { exceptionToErrorsArray, stringify } from '@shell/utils/error'; +import { preventImplicitSubmit } from '@pkg/harvester/utils/wizard'; const store = useStore(); const { t } = useI18n(store); @@ -269,6 +270,7 @@ const onCancel = () => { finish-mode="finish" finish-button-mode="createAndStart" class="wizard" + @keydown.enter.capture="preventImplicitSubmit" @cancel="onCancel" @finish="onFinish" > diff --git a/pkg/harvester/utils/__tests__/regular.test.js b/pkg/harvester/utils/__tests__/regular.test.js new file mode 100644 index 00000000..62764c37 --- /dev/null +++ b/pkg/harvester/utils/__tests__/regular.test.js @@ -0,0 +1,32 @@ +import { isValidCIDR } from '../regular'; + +describe('isValidCIDR', () => { + it.each([ + '10.0.0.0/16', + '192.168.1.0/24', + '0.0.0.0/0', + '255.255.255.255/32', + '172.16.100.9/12', + ])('should accept the IPv4 CIDR %s', (cidr) => { + expect(isValidCIDR(cidr)).toBe(true); + }); + + it.each([ + ['a short form', '10.1/16'], + ['a single number', '10/8'], + ['an integer address', '167772160/8'], + ['a hex address', '0x0a.0.0.0/8'], + ['an extra part', '10.0.0.0/24/1'], + ['an IPv6 range', 'fd00::/64'], + ['an IPv4-mapped IPv6 range', '::ffff:10.0.0.0/120'], + ['a prefix over 32', '10.0.0.0/33'], + ['an octet over 255', '10.0.0.256/24'], + ['zero-padded octets', '010.001.000.000/16'], + ['a zero-padded octet', '192.168.001.0/24'], + ['a zero-padded prefix', '10.0.0.0/08'], + ['no prefix', '10.0.0.0'], + ['an empty value', ''], + ])('should reject %s (%s)', (_, cidr) => { + expect(isValidCIDR(cidr)).toBe(false); + }); +}); diff --git a/pkg/harvester/utils/__tests__/table-views.test.js b/pkg/harvester/utils/__tests__/table-views.test.js new file mode 100644 index 00000000..f82cf566 --- /dev/null +++ b/pkg/harvester/utils/__tests__/table-views.test.js @@ -0,0 +1,21 @@ +import Feature from '@shell/models/management.cattle.io.feature'; +import { MANAGEMENT } from '@shell/config/types'; +import { CONFIGURABLE_TABLES } from '@shell/store/features'; +import { tableViewsOffFeature } from '../table-views'; + +describe('tableViewsOffFeature', () => { + it('should be the table views feature of the management store', () => { + const feature = tableViewsOffFeature(); + + expect(feature.type).toBe(MANAGEMENT.FEATURE); + expect(feature.id).toBe(CONFIGURABLE_TABLES); + }); + + it('should be read as disabled by the shell', () => { + const feature = new Feature(tableViewsOffFeature(), { + getters: {}, rootGetters: {}, dispatch: jest.fn(), rootState: {} + }); + + expect(feature.enabled).toBe(false); + }); +}); diff --git a/pkg/harvester/utils/__tests__/wizard.test.js b/pkg/harvester/utils/__tests__/wizard.test.js new file mode 100644 index 00000000..b22dcaf7 --- /dev/null +++ b/pkg/harvester/utils/__tests__/wizard.test.js @@ -0,0 +1,37 @@ +import { preventImplicitSubmit } from '../wizard'; + +function keydown(target) { + return { target, preventDefault: jest.fn() }; +} + +describe('preventImplicitSubmit', () => { + it('should stop Enter in a text field from submitting the wizard', () => { + const event = keydown(document.createElement('input')); + + preventImplicitSubmit(event); + + expect(event.preventDefault).toHaveBeenCalledTimes(1); + }); + + it('should leave Enter in a dropdown alone, which uses it to pick an option', () => { + const select = document.createElement('div'); + const input = document.createElement('input'); + + select.className = 'v-select'; + select.appendChild(input); + + const event = keydown(input); + + preventImplicitSubmit(event); + + expect(event.preventDefault).not.toHaveBeenCalled(); + }); + + it.each(['textarea', 'button'])('should leave Enter on a %s alone', (tag) => { + const event = keydown(document.createElement(tag)); + + preventImplicitSubmit(event); + + expect(event.preventDefault).not.toHaveBeenCalled(); + }); +}); diff --git a/pkg/harvester/utils/regular.js b/pkg/harvester/utils/regular.js index d060d486..03d1447f 100644 --- a/pkg/harvester/utils/regular.js +++ b/pkg/harvester/utils/regular.js @@ -1,4 +1,13 @@ +/** + * IPv4 CIDR such as 10.0.0.0/16. Unlike the shell's isValidCIDR since 3.0.14, it rejects the short forms + * (10.1/16), extra parts (10.0.0.0/24/1), zero-padded octets (010.0.0.0/8) and IPv6, which the network settings + * don't support + */ +export function isValidCIDR(cidr) { + return /^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\/(3[0-2]|[12]?[0-9])$/.test(cidr || ''); +} + export function isValidMac(value) { return /^[A-Fa-f0-9]{2}(-[A-Fa-f0-9]{2}){5}$|^[A-Fa-f0-9]{2}(:[A-Fa-f0-9]{2}){5}$/.test(value); } diff --git a/pkg/harvester/utils/table-views.js b/pkg/harvester/utils/table-views.js new file mode 100644 index 00000000..bef8cfbc --- /dev/null +++ b/pkg/harvester/utils/table-views.js @@ -0,0 +1,19 @@ +import { MANAGEMENT } from '@shell/config/types'; +import { CONFIGURABLE_TABLES } from '@shell/store/features'; + +/** + * The shell's table views feature (@rancher/shell 3.0.14), disabled, for the management store. Standalone Harvester + * has no such feature on the server, so the shell uses its default, on, and every list gets the table views, which + * drop the filters the lists put in the table header. Only kept in the store, nothing is saved. + */ +export function tableViewsOffFeature() { + return { + id: CONFIGURABLE_TABLES, + type: MANAGEMENT.FEATURE, + metadata: { name: CONFIGURABLE_TABLES }, + spec: { value: false }, + status: { + default: true, dynamic: true, lockedValue: null + }, + }; +} diff --git a/pkg/harvester/utils/wizard.js b/pkg/harvester/utils/wizard.js new file mode 100644 index 00000000..7dc68e22 --- /dev/null +++ b/pkg/harvester/utils/wizard.js @@ -0,0 +1,12 @@ +/** + * Keydown (capture) handler for a wizard. The shell's Wizard renders its step headers as buttons without a type + * since 3.0.14, so they are submit buttons: Enter in a text field submits the form by clicking the first one, + * which jumps back to step 1. Dropdowns are left alone, they use Enter to pick an option. + */ +export function preventImplicitSubmit(event) { + const target = event?.target; + + if (target?.tagName === 'INPUT' && !target.closest('.v-select')) { + event.preventDefault(); + } +} diff --git a/yarn.lock b/yarn.lock index 596b8687..947eafea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1502,6 +1502,145 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@codemirror/autocomplete@6.20.3": + version "6.20.3" + resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.20.3.tgz#696b740312c6a962e14567b49a3661b5924bc5ae" + integrity sha512-tlosUqb+3BbxCxZdu4tKeRghPFC+QM7q4X5YhKV2eCmPG+1r2F3f4AaSz5sCrFqUtX4Jh20VFTKecl16MgiV9g== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + +"@codemirror/autocomplete@^6.0.0": + version "6.20.4" + resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.20.4.tgz#57230a6bca565f3643729f7f9bad6ca0322e6dd7" + integrity sha512-yF8RhOf2SXlg00+qtupzLhrglcas61boqaONiNcbPIebHCpJocpqTBA6dyrtUrQO47hqyTdeob/3XnYilT7TaQ== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + +"@codemirror/commands@6.11.1": + version "6.11.1" + resolved "https://registry.yarnpkg.com/@codemirror/commands/-/commands-6.11.1.tgz#1ec31ffb4d87babd096b5857e68cdba3bb989abd" + integrity sha512-O/4hG3SC1YwcmQ0d2UVNDs+AsaNWd1iHVxbTeEBuqH+6bExAiPK3iS/BvpY6rZGURALv4ZD3sIgcCmRvw3ehBg== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.7.0" + "@codemirror/view" "^6.27.0" + "@lezer/common" "^1.1.0" + +"@codemirror/lang-javascript@6.2.5": + version "6.2.5" + resolved "https://registry.yarnpkg.com/@codemirror/lang-javascript/-/lang-javascript-6.2.5.tgz#b9ea6b2f0383ed6895fae7888c0322541538f10a" + integrity sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.6.0" + "@codemirror/lint" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + "@lezer/javascript" "^1.0.0" + +"@codemirror/lang-json@6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@codemirror/lang-json/-/lang-json-6.0.2.tgz#054b160671306667e25d80385286049841836179" + integrity sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ== + dependencies: + "@codemirror/language" "^6.0.0" + "@lezer/json" "^1.0.0" + +"@codemirror/lang-yaml@6.1.3": + version "6.1.3" + resolved "https://registry.yarnpkg.com/@codemirror/lang-yaml/-/lang-yaml-6.1.3.tgz#4d4127e8339984639715d1e3f8edca1ea5bfabfb" + integrity sha512-AZ8DJBuXGVHybpBQhmZtgew5//4hv3tdkXnr3vDmOUMJRuB6vn/uuwtmTOTlqEaQFg3hQSVeA90NmvIQyUV6FQ== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.2.0" + "@lezer/lr" "^1.0.0" + "@lezer/yaml" "^1.0.0" + +"@codemirror/language@6.12.4": + version "6.12.4" + resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.12.4.tgz#01e70fd5aa3a8a067ff1dfec75d5b6394cdfa058" + integrity sha512-1q4PaT+o6PbgpkJt4Q8Fv5XJxTy4FUZ4MWETtyiDw3J0Pyr9E2vqcKL+k9wcvjNTIsauxvE7OfmWj3FRPHQ76A== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.23.0" + "@lezer/common" "^1.5.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + style-mod "^4.0.0" + +"@codemirror/language@^6.0.0", "@codemirror/language@^6.6.0": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.13.1.tgz#61eb04c0265102ff9bb24d9a3ee633d37e84e324" + integrity sha512-zfvU2r3TyylQLMj/te+5CnQ0rSqZi8B1oTCBbQkagcLW4Xc6imab6qN+pEJhsuNOLaJqiRyBXp9UhWA1DhVvDw== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/streamparser" "^6.0.0" + "@codemirror/view" "^6.23.0" + "@lezer/common" "^1.5.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + style-mod "^4.0.0" + +"@codemirror/lint@6.9.7", "@codemirror/lint@^6.0.0": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.9.7.tgz#841fc733674389d91fe49a1c34027ad3babdf105" + integrity sha512-28/+iWLYxKxsvGYhSYL7zaCZqLz5+FFFDq9tVsvGv9kv8RY4fFAchJ5WX9M3YrrRlTIsECjsXPqeNgnSmNP2dg== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.42.0" + crelt "^1.0.5" + +"@codemirror/search@6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@codemirror/search/-/search-6.7.2.tgz#93a49eb21c026de473c4fc3a047b8fd67784b0f0" + integrity sha512-gUYkYhT2+n/+VGZ+8EzE5WFkYZUZYm1VOKDudIsNqh42uRVQJ0a6Yss9sdKT3MeOYfuL1N6AZA57oza0Oyr0LA== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.37.0" + crelt "^1.0.5" + +"@codemirror/state@6.7.6", "@codemirror/state@^6.0.0", "@codemirror/state@^6.7.0": + version "6.7.6" + resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.7.6.tgz#48af761fae3947745f17fa143cc5b5084225388d" + integrity sha512-kAz+AncRtKuIknedxT1bq4XwXv4UowhbkHU1myPrtVb/jZtImWuV5BXzv5vK6i3kYACsdiZiQKFQQ5Mq7elW8w== + dependencies: + "@marijn/find-cluster-break" "^1.0.0" + +"@codemirror/streamparser@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@codemirror/streamparser/-/streamparser-6.0.0.tgz#cc48a8f67e9001222d69938fabab157d68ce59d6" + integrity sha512-JTFPF6xrfjt0mnfGPgzcLiMwYmvIyNaoizp8BYzv8FE8KrT6GBGDZ190rtt+O7Wke3gG/MFHyiY9YGNeimof4w== + +"@codemirror/view@6.43.13": + version "6.43.13" + resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.43.13.tgz#a2d0286bf9e6051cb89076fd1c8dd58b907008d0" + integrity sha512-sihaFrUzAsYBQsL9J2t69y8nfMQGwcYmggAZsk+kjPbjYZMyuf2hU8tUNTZ+P+isb6XRr8JE22TZlJxBoVdH1A== + dependencies: + "@codemirror/state" "^6.7.0" + crelt "^1.0.6" + style-mod "^4.1.0" + w3c-keyname "^2.2.4" + +"@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0", "@codemirror/view@^6.37.0", "@codemirror/view@^6.42.0": + version "6.43.15" + resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.43.15.tgz#3da2515b3919e199b68520a5b6e559c2a4cfbe9e" + integrity sha512-HHsfpqFeHyXLs983pSRe38Xajs0vFWZQ2BuX0m7Ki8w3jZ5iD8cuR3lBz2/5/X53Dhf32SBHKh6rtSTB6tKeGw== + dependencies: + "@codemirror/state" "^6.7.0" + crelt "^1.0.6" + style-mod "^4.1.0" + w3c-keyname "^2.2.4" + "@commitlint/cli@^19.8.1": version "19.8.1" resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.8.1.tgz#85f7d9f331344e1f0a2b9d8b24fd3695466e1158" @@ -1683,10 +1822,10 @@ debug "^4.3.1" minimatch "^10.2.4" -"@eslint/config-helpers@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.6.0.tgz#ef9a36881d39dfd5dbeac22b0da997fabfb08b03" - integrity sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA== +"@eslint/config-helpers@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.7.0.tgz#09ee4aa07b73f059ec2d4c74bf4b2ff02b322377" + integrity sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw== dependencies: "@eslint/core" "^1.2.1" @@ -1734,17 +1873,22 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.11.tgz#a269e055e40e2f45873bae9d1a2fdccbd314ea3f" integrity sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg== -"@formatjs/intl-unified-numberformat@^3.2.0": - version "3.3.7" - resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.7.tgz#9995a24568908188e716d81a1de5b702b2ee00e2" - integrity sha512-KnWgLRHzCAgT9eyt3OS34RHoyD7dPDYhRcuKn+/6Kv2knDF8Im43J6vlSW6Hm1w63fNq3ZIT1cFk7RuVO3Psag== - dependencies: - "@formatjs/intl-utils" "^2.3.0" +"@formatjs/fast-memoize@3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-3.1.7.tgz#5f79b3756e4bcb5faee47b3a2f01216e1212c9e4" + integrity sha512-zXfhLpvA6T7+efdt9JLbBwZ00tT7NsBMDVnDu8rpHeNNv8KfRZAMo2gkG0k9lK/Nzc//3kJ9pImsfuJxk3KhUA== -"@formatjs/intl-utils@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-2.3.0.tgz#2dc8c57044de0340eb53a7ba602e59abf80dc799" - integrity sha512-KWk80UPIzPmUg+P0rKh6TqspRw0G6eux1PuJr+zz47ftMaZ9QDwbGzHZbtzWkl5hgayM/qrKRutllRC7D/vVXQ== +"@formatjs/icu-messageformat-parser@3.5.17": + version "3.5.17" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-3.5.17.tgz#7ac90ff6dde99468cd0b4a3f55344ccf8ae2ed87" + integrity sha512-cN9jhVqT7u0K9tix43fhjoUwL0nazyW6zsNIXs2QdPADr+nurPfYyssUiMqcSCGlPcCiqnYVxgSn7zBSuI+5Bg== + dependencies: + "@formatjs/icu-skeleton-parser" "2.1.11" + +"@formatjs/icu-skeleton-parser@2.1.11": + version "2.1.11" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-2.1.11.tgz#09226edf55a18e3fea80304d2cc95aaeb0095436" + integrity sha512-j8cUmOJzVgkHuS0QiQ6ga76UIoLOFSAMWhs7aZJztH3aAdCOAE6vpC8KVvFB4cU10ON0y2/5oOVmPJ43s2lTwA== "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" @@ -2064,6 +2208,64 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== +"@lezer/common@1.5.3", "@lezer/common@^1.0.0", "@lezer/common@^1.1.0", "@lezer/common@^1.2.0", "@lezer/common@^1.3.0", "@lezer/common@^1.5.0": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.5.3.tgz#1f0bf96f8f4949ef761991934b2f93947133b2ec" + integrity sha512-H0iErY4e43LpXbYDyBci5W4v/RwTgGV3YzYOlJPiGZ8RY8w51kVE+xLn1tg3Z6UmSfyETvtsUK3r7YsgDQEI7Q== + +"@lezer/highlight@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.4.tgz#e32dd87088af6b301ca0b2670c054c939918ff78" + integrity sha512-4UeRVFO0lsBaM7GA32zOqbmqNPme9jedo8Ey+5c5656MU3MLitMLIA8aCZTYjUMEpEsuSeXEm78Uea6Iq3bvSg== + dependencies: + "@lezer/common" "^1.3.0" + +"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.1.3", "@lezer/highlight@^1.2.0": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.5.tgz#af43ba19f2cd50713eb045ab827085a0aa6d8592" + integrity sha512-O1GMVKgtf5YspFaRzpmqkVgMtIk2HG9uMAbH6wdAIdNh3TVzCsch/+cRi+6l2//UGDKe6NB9BW3cvuR5ezMQ0w== + dependencies: + "@lezer/common" "^1.3.0" + +"@lezer/javascript@^1.0.0": + version "1.5.6" + resolved "https://registry.yarnpkg.com/@lezer/javascript/-/javascript-1.5.6.tgz#31edb7f3e8c433eb0e6ef295024f26a9bf093d6c" + integrity sha512-sEvOqpl4vJQca0NugSQK02vQPbc5KrvoojnYGoqqFgFO0MtcYhwGiHKVEB+LuXYJnfyXo4QPA8ztbrEa4Fw5NA== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.1.3" + "@lezer/lr" "^1.3.0" + +"@lezer/json@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@lezer/json/-/json-1.0.3.tgz#e773a012ad0088fbf07ce49cfba875cc9e5bc05f" + integrity sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/lr@^1.0.0", "@lezer/lr@^1.3.0", "@lezer/lr@^1.4.0": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.11.tgz#e335231c2c8e58a8d0e78de8dbcebf64ba6c7681" + integrity sha512-UwgZcl1R66H2hDzBrA7kWyYmX6s8p5TQ+e/t7CuvgCtBEPxbEPaHYHu+pJBvTvDotEJpuQkJjbXuHiw5Cixxgw== + dependencies: + "@lezer/common" "^1.0.0" + +"@lezer/yaml@^1.0.0": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@lezer/yaml/-/yaml-1.0.4.tgz#66a622188f1984a71d34506759b5807699043589" + integrity sha512-2lrrHqxalACEbxIbsjhqGpSW8kWpUKuY6RHgnSAFZa6qK62wvnPxA8hGOwOoDbwHcOFs5M4o27mjGu+P7TvBmw== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.4.0" + +"@marijn/find-cluster-break@^1.0.0": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@marijn/find-cluster-break/-/find-cluster-break-1.0.4.tgz#42c2aea61cda307cdb1347444792452d7b5dbfb4" + integrity sha512-Wy0V7+SGUjnF9/TkiM1hKVDPj7jKXduPNboMVtHTA8dySMURWqfg/JZ9E2Sq8JgSJmkl7k7Qe9FLeMSrSraWmQ== + "@nodable/entities@^2.1.0": version "2.1.1" resolved "https://registry.yarnpkg.com/@nodable/entities/-/entities-2.1.1.tgz#ce41931e9b72606d7f0598d665e46e889285d78a" @@ -2235,15 +2437,15 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== -"@rancher/icons@2.0.62": - version "2.0.62" - resolved "https://registry.yarnpkg.com/@rancher/icons/-/icons-2.0.62.tgz#42d3aa89d03a2e0e551332e99c8102dfdd422746" - integrity sha512-ywGk1NSrIdN1zllpbDRU3ESVW/D0ExRZFBz+YPGAo9G08VzWxKIcT5GG5Nd2GXLTcUestlq1JwkKDaVAM8hkmQ== +"@rancher/icons@2.0.65": + version "2.0.65" + resolved "https://registry.yarnpkg.com/@rancher/icons/-/icons-2.0.65.tgz#83ef3c28a7a18cfa07c99a7a8895b5e7b6a29742" + integrity sha512-AmPjzeNfIPk8AeQa1PawJfUXQ7iCDYxbkmRCsr3N4Kbx7/Tudko85pcUjjCWXIFaqiYQjBfQVArgwXY1ji1MNw== -"@rancher/shell@3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@rancher/shell/-/shell-3.0.13.tgz#b1bd7d554d49a5ed6766363e29ada08d0f85e46b" - integrity sha512-bkAtBKlTVxq2VXjTjJO0UNMtI8tGjuPeYMeRk3F/W/w18dpIMi3Si13ymyjxX3O5E0uGvw1gRkcm15MHmCMIbg== +"@rancher/shell@3.0.14": + version "3.0.14" + resolved "https://registry.yarnpkg.com/@rancher/shell/-/shell-3.0.14.tgz#773ec8bcb9e9219f2ddc5b5f2ce518f0541271bb" + integrity sha512-gj13qq5BHWBNGaDtXrHVD99A+9FyBDFywT4xcX6S3lIJFiecZ4xdbfvx27TfTOfo8QxwyS6sjhNWYLTxwFh6yg== dependencies: "@aws-sdk/client-ec2" "3.1041.0" "@aws-sdk/client-eks" "3.1041.0" @@ -2253,17 +2455,30 @@ "@babel/plugin-proposal-private-methods" "7.18.6" "@babel/plugin-proposal-private-property-in-object" "7.14.5" "@babel/preset-typescript" "7.16.7" + "@codemirror/autocomplete" "6.20.3" + "@codemirror/commands" "6.11.1" + "@codemirror/lang-javascript" "6.2.5" + "@codemirror/lang-json" "6.0.2" + "@codemirror/lang-yaml" "6.1.3" + "@codemirror/language" "6.12.4" + "@codemirror/lint" "6.9.7" + "@codemirror/search" "6.7.2" + "@codemirror/state" "6.7.6" + "@codemirror/view" "6.43.13" "@eslint/js" "10.0.1" + "@lezer/common" "1.5.3" + "@lezer/highlight" "1.2.4" "@novnc/novnc" "1.2.0" "@popperjs/core" "2.11.8" - "@rancher/icons" "2.0.62" + "@rancher/icons" "2.0.65" + "@replit/codemirror-vim" "6.4.0" "@smithy/fetch-http-handler" "5.1.1" "@types/is-url" "1.2.30" "@types/node" "25.3.3" "@types/semver" "7.7.1" "@typescript-eslint/eslint-plugin" "8.62.0" - "@typescript-eslint/parser" "8.62.0" - "@vee-validate/zod" "4.15.0" + "@typescript-eslint/parser" "8.70.0" + "@vee-validate/zod" "4.15.1" "@vue/cli-plugin-babel" "~5.0.0" "@vue/cli-plugin-typescript" "~5.0.0" "@vue/cli-service" "5.0.8" @@ -2275,9 +2490,9 @@ "@xterm/addon-web-links" "0.12.0" "@xterm/addon-webgl" "0.19.0" "@xterm/xterm" "6.0.0" - add "2.0.6" + add "2.0.9" ansi_up "5.0.0" - axios "1.18.0" + axios "1.20.0" axios-retry "3.1.9" babel-preset-vue "2.0.2" cache-loader "4.1.0" @@ -2287,7 +2502,7 @@ codemirror-editor-vue3 "2.8.0" color "5.0.3" cookie-universal "2.2.2" - core-js "3.48.0" + core-js "3.50.0" cron-validator "1.4.0" cronstrue "3.9.0" css-loader "6.7.3" @@ -2297,17 +2512,17 @@ dayjs "1.11.18" diff "9.0.0" diff2html "3.4.24" - dompurify "3.4.12" + dompurify "3.4.16" element-matches "^0.1.2" entities "4.5.0" - eslint "10.5.0" + eslint "10.8.0" eslint-import-resolver-node "0.3.9" eslint-module-utils "2.6.1" eslint-plugin-cypress "4.3.0" eslint-plugin-import "2.32.0" eslint-plugin-jest "29.15.2" eslint-plugin-n "17.24.0" - eslint-plugin-vue "10.9.2" + eslint-plugin-vue "10.10.0" event-target-shim "5.0.1" file-saver "2.0.5" floating-vue "5.2.2" @@ -2315,14 +2530,14 @@ frontmatter-markdown-loader "3.7.0" globals "17.7.0" identicon.js "2.3.3" - intl-messageformat "7.8.4" + intl-messageformat "11.2.14" is-url "1.2.4" jest "29.7.0" jest-environment-jsdom "29.7.0" jest-serializer-vue "2.0.2" jexl "2.3.0" jquery "3.5.1" - js-yaml "4.3.0" + js-yaml "4.3.2" js-yaml-loader "1.2.2" jsonpath-plus "10.3.0" jsrsasign "11.1.1" @@ -2332,7 +2547,7 @@ neostandard "0.13.0" node-polyfill-webpack-plugin "3.0.0" nodemon "2.0.22" - nyc "17.1.0" + nyc "18.0.0" papaparse "5.3.0" portal-vue "~3.0.0" sass "1.97.3" @@ -2344,7 +2559,7 @@ ufo "0.7.11" unfetch "4.2.0" vee-validate "^4.15.1" - vue "3.5.29" + vue "3.5.42" vue-eslint-parser "10.4.1" vue-router "4.6.4" vue-select "4.0.0-beta.6" @@ -2359,6 +2574,18 @@ yarn "1.22.22" zod "3.24.3" +"@replit/codemirror-vim-core@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@replit/codemirror-vim-core/-/codemirror-vim-core-0.1.0.tgz#2f0d17b6e4a4859e261945247bc9ce50c87e580f" + integrity sha512-1i6EBKpcNfDKvTmTh6N6g9lL6udD5t+uFNh4JCqozRnVlvUGOps7h/QzS2ne4zcvPUjvApKpmcP7Grc3fNbZiQ== + +"@replit/codemirror-vim@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@replit/codemirror-vim/-/codemirror-vim-6.4.0.tgz#7ec9b827b53de36caf4a0ed1272bf55019846a4f" + integrity sha512-t9UMDNhkmeAkl0uRbiJVotv97bGD6mf4GyJJoEbrjUqa/Pov0s9eL+4AaI0Xto3OGri17i9qwIpT0JbVlVXt8A== + dependencies: + "@replit/codemirror-vim-core" "^0.1.0" + "@rtsao/scc@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" @@ -3090,6 +3317,17 @@ "@typescript-eslint/visitor-keys" "8.62.0" debug "^4.4.3" +"@typescript-eslint/parser@8.70.0": + version "8.70.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.70.0.tgz#96ce2de96c06c8442fea1a8f7b07855a56b3c5e3" + integrity sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q== + dependencies: + "@typescript-eslint/scope-manager" "8.70.0" + "@typescript-eslint/types" "8.70.0" + "@typescript-eslint/typescript-estree" "8.70.0" + "@typescript-eslint/visitor-keys" "8.70.0" + debug "^4.4.3" + "@typescript-eslint/project-service@8.62.0": version "8.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.62.0.tgz#ab74c1abb4959fb4c3ba7d7edc6554ee245db990" @@ -3099,6 +3337,15 @@ "@typescript-eslint/types" "^8.62.0" debug "^4.4.3" +"@typescript-eslint/project-service@8.70.0": + version "8.70.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.70.0.tgz#a62e837362f26c604ad15b20bacce1c3f4d6b552" + integrity sha512-hFHbTNqhU9G+2eKFXCBVb1tjFT/LceiJ4+HfLO4pTpDI0KHi6iajpcFFkaSQ9gXmCh7n82A0PthaayEdN6mspQ== + dependencies: + "@typescript-eslint/tsconfig-utils" "^8.70.0" + "@typescript-eslint/types" "^8.70.0" + debug "^4.4.3" + "@typescript-eslint/scope-manager@8.62.0": version "8.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.62.0.tgz#a7a7b428d32444bc9a4fe16f24a78fc124283fd4" @@ -3107,16 +3354,34 @@ "@typescript-eslint/types" "8.62.0" "@typescript-eslint/visitor-keys" "8.62.0" +"@typescript-eslint/scope-manager@8.70.0": + version "8.70.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.70.0.tgz#b77628b03c9c56ef21fb5a6bc2f4a4335163b999" + integrity sha512-8nP3Kwh5hlgZ4FicGvmznAmJe8UL4sdU8tLukrPaMuQmDuk4Y8xYfzu/aYZW4xT2JCgc7H/TpDI5cGlxcWJSqQ== + dependencies: + "@typescript-eslint/types" "8.70.0" + "@typescript-eslint/visitor-keys" "8.70.0" + "@typescript-eslint/tsconfig-utils@8.62.0": version "8.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.62.0.tgz#9440a673581c6d9de308c4d5803dd52ed5d71729" integrity sha512-y2GAdB6ykaXUvuspbYnizQc4oDDz0Tz/Yc7iWrXf9mx8vm/L/0vLHCe0tS2boG96Zy+DivnVDQ9ZUEWoHqqx1g== +"@typescript-eslint/tsconfig-utils@8.70.0": + version "8.70.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.70.0.tgz#f583ca72159c4fd8e775c153da3241de6b77974f" + integrity sha512-adnkeeNq9Sq1sUf4+FRVc0KdgYghzsgFpZSQVZVvY0LCuUuN0FnQgyGzCJeC4fW1cdXseBAjU2EOqUIjbNcZUw== + "@typescript-eslint/tsconfig-utils@^8.62.0": version "8.68.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.68.0.tgz#594d7a3c5952055b3c431fc563ca7fd1defcce18" integrity sha512-F7zrGQfiJHojPwi8vhxZQC1tWtJzvL74cK/nqri2lk8YUXvYaYwl263xOJ69jDWPUk1hmcdoayFwk9lX09npVw== +"@typescript-eslint/tsconfig-utils@^8.70.0": + version "8.72.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.0.tgz#a71e770c420ccbd7afc081f388bfa87d1958dc16" + integrity sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA== + "@typescript-eslint/type-utils@8.62.0": version "8.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.62.0.tgz#6f64d813ed9f340d796baed40cdab86b8e9a491a" @@ -3133,11 +3398,21 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.62.0.tgz#601427c10203d9f0f34f0b3e474df735eb12b593" integrity sha512-KvAclkktORPvM54TgLgA4z9HIV1M8zOgw9ZVNXl9f/8dLYfXYX1wkMXP7qmabpijQRV5bHJLOmoyGQbLMaUYeg== +"@typescript-eslint/types@8.70.0": + version "8.70.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.70.0.tgz#9ee52888cdeca604fe9436935219b967fa7f6053" + integrity sha512-asTOIYhDg4zdzOScCyaytrsV3cR6B4ecPQlXw/dJIm7J/MZTtCtfVII9JD8Geh4jTCrK/Xe6cg5UevoleMcoJQ== + "@typescript-eslint/types@^8.62.0": version "8.68.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.68.0.tgz#3f9d4e62fbe5728f09403cdc7b4d58af842ac1af" integrity sha512-9RnpsGJjrAllCMefGVVsImJM24YurhC0Q1h4UbvivtvOqXmR/vEJge2OoE++z9m6hyg8T1Q8t5SNT6tHSbrxcg== +"@typescript-eslint/types@^8.70.0": + version "8.72.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.72.0.tgz#d90bb9954fefa13acbcdb43bb7c0155f74d60fca" + integrity sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ== + "@typescript-eslint/typescript-estree@8.62.0": version "8.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.62.0.tgz#b96b55d02e26aa09434421c3fa678e525ca09a4c" @@ -3153,6 +3428,21 @@ tinyglobby "^0.2.15" ts-api-utils "^2.5.0" +"@typescript-eslint/typescript-estree@8.70.0": + version "8.70.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.70.0.tgz#79cfcd9678ee28ea69cc13032c0f89bb1d298917" + integrity sha512-d9NmHMPEKQ7QCLLm1jI3zmoQBwT5KwFYjXBJ9ymZfKCUU+5rmTRykKAFvH5Qn/ZCds3CEAFS9OC9M/jkl0X2bA== + dependencies: + "@typescript-eslint/project-service" "8.70.0" + "@typescript-eslint/tsconfig-utils" "8.70.0" + "@typescript-eslint/types" "8.70.0" + "@typescript-eslint/visitor-keys" "8.70.0" + debug "^4.4.3" + minimatch "^10.2.2" + semver "^7.7.3" + tinyglobby "^0.2.15" + ts-api-utils "^2.5.0" + "@typescript-eslint/utils@8.62.0", "@typescript-eslint/utils@^8.0.0", "@typescript-eslint/utils@^8.13.0": version "8.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.62.0.tgz#b5228524ca1ee51af40e156c82d425dec3e01cfe" @@ -3171,13 +3461,21 @@ "@typescript-eslint/types" "8.62.0" eslint-visitor-keys "^5.0.0" -"@vee-validate/zod@4.15.0": - version "4.15.0" - resolved "https://registry.yarnpkg.com/@vee-validate/zod/-/zod-4.15.0.tgz#2de193da114eda9f873b5a677f13c23bcecb58aa" - integrity sha512-MpvIKiyg9X5yD8bJW0no2AU7wtR2T5mrvD9tuPRiie951sU2n6QKgMV38qKKOiqFBCxsMSjIuLLLV3V5kVE4nQ== +"@typescript-eslint/visitor-keys@8.70.0": + version "8.70.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.70.0.tgz#b451c8aea76dc97fc768b8d9d7f61019bf789628" + integrity sha512-BoC8PiO4Hkdo0TVJh9Ntxr5MxPDI7/oFsrygN5ADelFSeXG/qgNuucIGA+L5Z6JpPTE/uRfcTWtscjbUaufepQ== + dependencies: + "@typescript-eslint/types" "8.70.0" + eslint-visitor-keys "^5.0.0" + +"@vee-validate/zod@4.15.1": + version "4.15.1" + resolved "https://registry.yarnpkg.com/@vee-validate/zod/-/zod-4.15.1.tgz#69d583c175305e50e5cdcb1db840601d3a5a984e" + integrity sha512-329Z4TDBE5Vx0FdbA8S4eR9iGCFFUNGbxjpQ20ff5b5wGueScjocUIx9JHPa79LTG06RnlUR4XogQsjN4tecKA== dependencies: type-fest "^4.8.3" - vee-validate "4.15.0" + vee-validate "4.15.1" "@vue-flow/background@^1.3.0": version "1.3.2" @@ -3475,6 +3773,17 @@ estree-walker "^2.0.2" source-map-js "^1.2.1" +"@vue/compiler-core@3.5.42": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.42.tgz#9d159ca5b1e7d792a42e9b1ddf2fc31edc9333dc" + integrity sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ== + dependencies: + "@babel/parser" "^7.29.8" + "@vue/shared" "3.5.42" + entities "^7.0.1" + estree-walker "^2.0.2" + source-map-js "^1.2.1" + "@vue/compiler-dom@3.5.29": version "3.5.29" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.29.tgz#055cf5492005249591c7fb45868a874468e4ffb3" @@ -3483,7 +3792,30 @@ "@vue/compiler-core" "3.5.29" "@vue/shared" "3.5.29" -"@vue/compiler-sfc@3.5.29", "@vue/compiler-sfc@^3.5.18": +"@vue/compiler-dom@3.5.42": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.42.tgz#2ac9570010bbffb7c08d8a904a956ecbabcdf6c6" + integrity sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA== + dependencies: + "@vue/compiler-core" "3.5.42" + "@vue/shared" "3.5.42" + +"@vue/compiler-sfc@3.5.42": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.42.tgz#502c50e7864a980b7f147b78974e3b49fefcc16d" + integrity sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw== + dependencies: + "@babel/parser" "^7.29.8" + "@vue/compiler-core" "3.5.42" + "@vue/compiler-dom" "3.5.42" + "@vue/compiler-ssr" "3.5.42" + "@vue/shared" "3.5.42" + estree-walker "^2.0.2" + magic-string "^0.30.21" + postcss "^8.5.19" + source-map-js "^1.2.1" + +"@vue/compiler-sfc@^3.5.18": version "3.5.29" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.29.tgz#8b1b0707fb53c122fedd566244a564eaf40ee71f" integrity sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA== @@ -3506,6 +3838,14 @@ "@vue/compiler-dom" "3.5.29" "@vue/shared" "3.5.29" +"@vue/compiler-ssr@3.5.42": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.42.tgz#a3121ad517e9062121762e452f125674cc6162fa" + integrity sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA== + dependencies: + "@vue/compiler-dom" "3.5.42" + "@vue/shared" "3.5.42" + "@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.3.0": version "3.3.0" resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" @@ -3554,44 +3894,50 @@ dependencies: rfdc "^1.4.1" -"@vue/reactivity@3.5.29": - version "3.5.29" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.29.tgz#68fbaedcc2584328060edceedc4d4370b49c9fab" - integrity sha512-zcrANcrRdcLtmGZETBxWqIkoQei8HaFpZWx/GHKxx79JZsiZ8j1du0VUJtu4eJjgFvU/iKL5lRXFXksVmI+5DA== +"@vue/reactivity@3.5.42": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.42.tgz#800220f023d36fd04d94460c7c7ab5808f8ae75f" + integrity sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ== dependencies: - "@vue/shared" "3.5.29" + "@vue/shared" "3.5.42" -"@vue/runtime-core@3.5.29": - version "3.5.29" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.29.tgz#fbd34110aa47e74a22fe430734018bec56913b40" - integrity sha512-8DpW2QfdwIWOLqtsNcds4s+QgwSaHSJY/SUe04LptianUQ/0xi6KVsu/pYVh+HO3NTVvVJjIPL2t6GdeKbS4Lg== +"@vue/runtime-core@3.5.42": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.42.tgz#a8af85746d6f9a9f1f8e4626be24eb0b8c9a1e72" + integrity sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA== dependencies: - "@vue/reactivity" "3.5.29" - "@vue/shared" "3.5.29" + "@vue/reactivity" "3.5.42" + "@vue/shared" "3.5.42" -"@vue/runtime-dom@3.5.29": - version "3.5.29" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.29.tgz#4eb686b22178f13c262ea1d0d7171a3134ced21f" - integrity sha512-AHvvJEtcY9tw/uk+s/YRLSlxxQnqnAkjqvK25ZiM4CllCZWzElRAoQnCM42m9AHRLNJ6oe2kC5DCgD4AUdlvXg== +"@vue/runtime-dom@3.5.42": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.42.tgz#c7b487a92b2c381db547c1aa5040bd7febb40448" + integrity sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g== dependencies: - "@vue/reactivity" "3.5.29" - "@vue/runtime-core" "3.5.29" - "@vue/shared" "3.5.29" + "@vue/reactivity" "3.5.42" + "@vue/runtime-core" "3.5.42" + "@vue/shared" "3.5.42" csstype "^3.2.3" -"@vue/server-renderer@3.5.29": - version "3.5.29" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.29.tgz#9cbcbf676b2976fbb8171d5de79501894ba84cad" - integrity sha512-G/1k6WK5MusLlbxSE2YTcqAAezS+VuwHhOvLx2KnQU7G2zCH6KIb+5Wyt6UjMq7a3qPzNEjJXs1hvAxDclQH+g== +"@vue/server-renderer@3.5.42": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.42.tgz#27c3d4743273bf7e839fc5a5e2f7db25e8d779e8" + integrity sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ== dependencies: - "@vue/compiler-ssr" "3.5.29" - "@vue/shared" "3.5.29" + "@vue/compiler-ssr" "3.5.42" + "@vue/runtime-dom" "3.5.42" + "@vue/shared" "3.5.42" "@vue/shared@3.5.29", "@vue/shared@^3.5.18": version "3.5.29" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.29.tgz#0fe0d7637b05599d56ca58d83a77c637a1774110" integrity sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg== +"@vue/shared@3.5.42": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.42.tgz#a413cf21262502662354cda3b65ab31bca979202" + integrity sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g== + "@vue/test-utils@2.4.6": version "2.4.6" resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-2.4.6.tgz#7d534e70c4319d2a587d6a3b45a39e9695ade03c" @@ -3879,10 +4225,10 @@ acorn@^8.0.4, acorn@^8.0.5, acorn@^8.1.0, acorn@^8.11.0, acorn@^8.15.0, acorn@^8 resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.18.0.tgz#4faf01b2d6d326bfeed97aea1f52220b5f4c1940" integrity sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ== -add@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/add/-/add-2.0.6.tgz#248f0a9f6e5a528ef2295dbeec30532130ae2235" - integrity sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q== +add@2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/add/-/add-2.0.9.tgz#35bd7a6404d966435919bd8413d11895cf28666d" + integrity sha512-a6+u7hP0xmII7EBQenAIb6oMp9/vcW6EmrsD0ngUbLnE69Xtwj4yCbmHLUi5LZ6ggJB+AufHTaDbW1XBiYJwFw== address@^1.1.2: version "1.2.2" @@ -4207,13 +4553,13 @@ axios-retry@3.1.9: dependencies: is-retry-allowed "^1.1.0" -axios@1.18.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.18.0.tgz#8a7f8854af280fcaae063272df2ed9f3837d2398" - integrity sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw== +axios@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.20.0.tgz#515513445aa60e71d04b6521ca6210829ccb4786" + integrity sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg== dependencies: follow-redirects "^1.16.0" - form-data "^4.0.5" + form-data "^4.0.6" https-proxy-agent "^5.0.1" proxy-from-env "^2.1.0" @@ -5216,7 +5562,12 @@ core-js-compat@^3.43.0, core-js-compat@^3.48.0, core-js-compat@^3.8.3: dependencies: browserslist "^4.28.1" -core-js@3.48.0, core-js@^3.8.3: +core-js@3.50.0: + version "3.50.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.50.0.tgz#a18646fcb0097650189b4504c803e887bcae4c0a" + integrity sha512-BRWgOLKkFeCgRudR6zrs8p9XJZcE14grzKMMssoYrk6krtuEZ7MTKPIY5RzOnqsEKIR9kst7wNzphttraT+Yqw== + +core-js@^3.8.3: version "3.48.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.48.0.tgz#1f813220a47bbf0e667e3885c36cd6f0593bf14d" integrity sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ== @@ -5309,6 +5660,11 @@ create-jest@^29.7.0: jest-util "^29.7.0" prompts "^2.0.1" +crelt@^1.0.5, crelt@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.7.tgz#3b441b2ddfa73161d6a2770aa4cd677f895eaf28" + integrity sha512-aK6BbWfhf4U/wCcLHKPJl/xa6VkVstRaPywWtMKGwuOLc/wZTyQYuoxgvZnNsBvv7Kg3YTBQYYBCggcviQczuA== + cron-validator@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cron-validator/-/cron-validator-1.4.0.tgz#77ed4277b086c22e74ee65640f8456747afd4885" @@ -6056,10 +6412,10 @@ domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: dependencies: domelementtype "^2.2.0" -dompurify@3.4.12: - version "3.4.12" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.12.tgz#6fa2265e9bbdce882c4ace4107626051b448ffa8" - integrity sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg== +dompurify@3.4.16: + version "3.4.16" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.16.tgz#c51b3709ea15ee9abb07e804f2ef30ea9b953128" + integrity sha512-sqo+pNp3qRhCIpbgRi1y8Tgk27Bo2Ry7w0dC1NBeNTdZChWjz9Xb/KOoZbRP/R6pQZ80Qw8YhXw13hWWBbMRnQ== optionalDependencies: "@types/trusted-types" "^2.0.7" @@ -6556,17 +6912,17 @@ eslint-plugin-react@^7.37.5: string.prototype.matchall "^4.0.12" string.prototype.repeat "^1.0.0" -eslint-plugin-vue@10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-10.9.2.tgz#571a3e1d826628f078094a748c9d4df49ad18668" - integrity sha512-4g7ZP3pYcuqd7Zp0pzUKcos0W+RkjBz4EGdhJ92FcYk6v03Ti/GK5NwjgsjxHK+98eXDbHeK7VtX1az7/8doZA== +eslint-plugin-vue@10.10.0: + version "10.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-10.10.0.tgz#e957b56853dea54e738136d849d85929954bdf3d" + integrity sha512-dL9x9rBHqqNcByWiLOHK6L0SB97V82/NC0cZRn9cXPjM7pCuWlpQQP9bFH4vjBv80ej1ZpzAkuD8zWH1o9bZbA== dependencies: - "@eslint-community/eslint-utils" "^4.4.0" + "@eslint-community/eslint-utils" "^4.9.1" natural-compare "^1.4.0" nth-check "^2.1.1" - postcss-selector-parser "^7.1.0" - semver "^7.6.3" - xml-name-validator "^4.0.0" + postcss-selector-parser "^7.1.4" + semver "^7.8.5" + xml-name-validator "^5.0.0" eslint-scope@5.1.1: version "5.1.1" @@ -6613,15 +6969,15 @@ eslint-visitor-keys@^4.2.0, eslint-visitor-keys@^4.2.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== -eslint@10.5.0: - version "10.5.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.5.0.tgz#5fca69d6b41fe7e00ba22d4100b2e44efe439ad5" - integrity sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ== +eslint@10.8.0: + version "10.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.8.0.tgz#e6d19907a3f090a53a022261ba34c5ff6d04908b" + integrity sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ== dependencies: "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.2" "@eslint/config-array" "^0.23.5" - "@eslint/config-helpers" "^0.6.0" + "@eslint/config-helpers" "^0.7.0" "@eslint/core" "^1.2.1" "@eslint/plugin-kit" "^0.7.2" "@humanfs/node" "^0.16.6" @@ -6645,7 +7001,7 @@ eslint@10.5.0: imurmurhash "^0.1.4" is-glob "^4.0.0" json-stable-stringify-without-jsonify "^1.0.1" - minimatch "^10.2.4" + minimatch "^10.2.5" natural-compare "^1.4.0" optionator "^0.9.3" @@ -7082,7 +7438,7 @@ fork-ts-checker-webpack-plugin@^6.4.0: semver "^7.3.2" tapable "^1.0.0" -form-data@^4.0.0, form-data@^4.0.5: +form-data@^4.0.0, form-data@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.6.tgz#28e864e1b786dbebb68db1f452f9635278665827" integrity sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== @@ -7269,7 +7625,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.2.3, glob@^10.4.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@7.2.3, glob@^10.4.2, glob@^13.0.3, glob@^13.0.6, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -7763,25 +8119,13 @@ internal-slot@^1.1.0: resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== -intl-format-cache@^4.2.21: - version "4.3.1" - resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-4.3.1.tgz#484d31a9872161e6c02139349b259a6229ade377" - integrity sha512-OEUYNA7D06agqPOYhbTkl0T8HA3QKSuwWh1HiClEnpd9vw7N+3XsQt5iZ0GUEchp5CW1fQk/tary+NsbF3yQ1Q== - -intl-messageformat-parser@^3.6.4: - version "3.6.4" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-3.6.4.tgz#5199d106d816c3dda26ee0694362a9cf823978fb" - integrity sha512-RgPGwue0mJtoX2Ax8EmMzJzttxjnva7gx0Q7mKJ4oALrTZvtmCeAw5Msz2PcjW4dtCh/h7vN/8GJCxZO1uv+OA== +intl-messageformat@11.2.14: + version "11.2.14" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-11.2.14.tgz#610e4a21511d85dc06634424409d60bb1e9e441f" + integrity sha512-9f2VD1HFuxUvMw0RxsaP8WmMns6JRTnsNB/zghTFrp11ZktiXWwVDeZBPQchBKEmo+Gx/ZhxI7Qht7YglFD4PA== dependencies: - "@formatjs/intl-unified-numberformat" "^3.2.0" - -intl-messageformat@7.8.4: - version "7.8.4" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-7.8.4.tgz#c29146a06b9cd26662978a4d95fff2b133e3642f" - integrity sha512-yS0cLESCKCYjseCOGXuV4pxJm/buTfyCJ1nzQjryHmSehlptbZbn9fnlk1I9peLopZGGbjj46yHHiTAEZ1qOTA== - dependencies: - intl-format-cache "^4.2.21" - intl-messageformat-parser "^3.6.4" + "@formatjs/fast-memoize" "3.1.7" + "@formatjs/icu-messageformat-parser" "3.5.17" ip@2.0.1: version "2.0.1" @@ -8191,17 +8535,16 @@ istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: istanbul-lib-coverage "^3.2.0" semver "^7.5.4" -istanbul-lib-processinfo@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz#366d454cd0dcb7eb6e0e419378e60072c8626169" - integrity sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg== +istanbul-lib-processinfo@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-3.0.1.tgz#2d5eaa48df7ea081fe816bceaf4b41591c079b4e" + integrity sha512-s3mX05h5wGZeScG6XnOanygPh4SJu5ujMc9YbvpnLGXWy1cRiGbp0NdVcjHxgoZt3WfQppfBsa0y+gWdYJ2pGQ== dependencies: archy "^1.0.0" cross-spawn "^7.0.3" istanbul-lib-coverage "^3.2.0" p-map "^3.0.0" - rimraf "^3.0.0" - uuid "^8.3.2" + rimraf "^6.1.3" istanbul-lib-report@^3.0.0: version "3.0.1" @@ -8706,10 +9049,10 @@ js-yaml-loader@1.2.2: loader-utils "^1.2.3" un-eval "^1.2.0" -js-yaml@4.3.0, js-yaml@^4.1.0, js-yaml@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592" - integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== +js-yaml@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.2.tgz#8e44fb14a2643c59726bb15787b5f1512cb3d3fb" + integrity sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== dependencies: argparse "^2.0.1" @@ -8721,6 +9064,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0, js-yaml@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592" + integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== + dependencies: + argparse "^2.0.1" + jsdom@^20.0.0: version "20.0.3" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" @@ -9302,7 +9652,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@^10.2.2, minimatch@^10.2.4: +minimatch@^10.2.2, minimatch@^10.2.4, minimatch@^10.2.5: version "10.2.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.6.tgz#fd956bbe0b77241e9f15ac5dccb1c638060968ef" integrity sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A== @@ -9401,6 +9751,11 @@ nanoid@^3.3.11: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.18.tgz#f66a2de1199ffde0fcf21c8a5f13106b1c081913" integrity sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w== +nanoid@^3.3.20: + version "3.3.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.20.tgz#dfd4444d85aa10111ef66ba85ed72e08ba0855d8" + integrity sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -9599,10 +9954,10 @@ nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.25.tgz#7ac2eb1e3679f159a6180010b055c3515eb3bb53" integrity sha512-kktSgNDIbyEIs/LrE6dtEMnfzxSDpXViFl6c4gFjz/CgtnL4GDCR3wyZXzjvAXsNB8dXU4dAfvIOgLMH2/vwLg== -nyc@17.1.0: - version "17.1.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-17.1.0.tgz#b6349a401a62ffeb912bd38ea9a018839fdb6eb1" - integrity sha512-U42vQ4czpKa0QdI1hu950XuNhYqgoM+ZF1HT+VuUHL9hPfDPVvNQyltmMqdE9bUHMVa+8yNbc3QKTj8zQhlVxQ== +nyc@18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-18.0.0.tgz#644c75c5cba4e8c571674016ac7f714fb143f20c" + integrity sha512-G5UyHinFkB1BxqGTrmZdB6uIYH0+v7ZnVssuflUDi+J+RhKWyAhRT1RCehBSI6jLFLuUUgFDyLt49mUtdO1XeQ== dependencies: "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" @@ -9613,11 +9968,11 @@ nyc@17.1.0: find-up "^4.1.0" foreground-child "^3.3.0" get-package-type "^0.1.0" - glob "^7.1.6" + glob "^13.0.6" istanbul-lib-coverage "^3.0.0" istanbul-lib-hook "^3.0.0" istanbul-lib-instrument "^6.0.2" - istanbul-lib-processinfo "^2.0.2" + istanbul-lib-processinfo "^3.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" @@ -9626,10 +9981,10 @@ nyc@17.1.0: p-map "^3.0.0" process-on-spawn "^1.0.0" resolve-from "^5.0.0" - rimraf "^3.0.0" + rimraf "^6.1.3" signal-exit "^3.0.2" - spawn-wrap "^2.0.0" - test-exclude "^6.0.0" + spawn-wrap "^3.0.0" + test-exclude "^8.0.0" yargs "^15.0.2" object-assign@^4.0.1, object-assign@^4.1.1: @@ -9895,6 +10250,11 @@ package-hash@^4.0.0: lodash.flattendeep "^4.4.0" release-zalgo "^1.0.0" +package-json-from-dist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + pako@~1.0.2, pako@~1.0.5: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" @@ -10339,7 +10699,7 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-selector-parser@^7.0.0, postcss-selector-parser@^7.1.0: +postcss-selector-parser@^7.0.0: version "7.1.5" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.5.tgz#ee7b090724eb60739b530660e5b402200e694a97" integrity sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw== @@ -10347,6 +10707,14 @@ postcss-selector-parser@^7.0.0, postcss-selector-parser@^7.1.0: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^7.1.4: + version "7.1.7" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.7.tgz#70e353032ced41529d70b7662227a74eb001d31b" + integrity sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-svgo@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" @@ -10384,6 +10752,15 @@ postcss@^8.2.6, postcss@^8.3.5, postcss@^8.4.19, postcss@^8.5.6: picocolors "^1.1.1" source-map-js "^1.2.1" +postcss@^8.5.19: + version "8.5.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.31.tgz#d44731fa02f8ae8371629ec7220e2ae0dbdf23ec" + integrity sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg== + dependencies: + nanoid "^3.3.20" + picocolors "^1.1.1" + source-map-js "^1.2.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -10850,13 +11227,21 @@ rfdc@^1.4.1: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" +rimraf@^6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.3.tgz#afbee236b3bd2be331d4e7ce4493bac1718981af" + integrity sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA== + dependencies: + glob "^13.0.3" + package-json-from-dist "^1.0.1" + ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.3.tgz#9be54e4ba5e3559c8eee06a25cd7648bbccdf5a8" @@ -11263,6 +11648,11 @@ sortablejs@1.14.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== +source-map-js@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.2.tgz#79fb88d97535a21cb27162cb05d211b67acea4ab" + integrity sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw== + source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -11294,15 +11684,16 @@ source-map@^0.7.4: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02" integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== -spawn-wrap@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" - integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== +spawn-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-3.0.0.tgz#8f8c3e69e7f6afcf9404beacaa3241f645d6ea5c" + integrity sha512-z+s5vv4KzFPJVddGab0xX2n7kQPGMdNUX5l9T8EJqsXdKTWpcxmAqWHpsgHEXoC1taGBCc7b79bi62M5kdbrxQ== dependencies: + cross-spawn "^7.0.6" foreground-child "^2.0.0" is-windows "^1.0.2" make-dir "^3.0.0" - rimraf "^3.0.0" + rimraf "^6.1.3" signal-exit "^3.0.2" which "^2.0.1" @@ -11585,6 +11976,11 @@ style-loader@1.2.1: loader-utils "^2.0.0" schema-utils "^2.6.6" +style-mod@^4.0.0, style-mod@^4.1.0: + version "4.1.4" + resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.1.4.tgz#b8d718efca020766f90e0969daa751d5cccc5fd4" + integrity sha512-XXWIQt633/EpAFx8aZDOTjBzrCaGmhvEQlQo6MVPfa2OzO2cWo+4hV9h+6UkHYlXGfy+ODXKUdP7Pthmcu5ATw== + stylehacks@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" @@ -11693,6 +12089,15 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +test-exclude@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-8.0.0.tgz#85891add3fa46bb822b1b1579c7f8c9a3d04ebd8" + integrity sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^13.0.6" + minimatch "^10.2.2" + text-extensions@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" @@ -12163,15 +12568,7 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vee-validate@4.15.0: - version "4.15.0" - resolved "https://registry.yarnpkg.com/vee-validate/-/vee-validate-4.15.0.tgz#eb77a9c867669d34abbc33ca5e16f2a991eb7ad5" - integrity sha512-PGJh1QCFwCBjbHu5aN6vB8macYVWrajbDvgo1Y/8fz9n/RVIkLmZCJDpUgu7+mUmCOPMxeyq7vXUOhbwAqdXcA== - dependencies: - "@vue/devtools-api" "^7.5.2" - type-fest "^4.8.3" - -vee-validate@^4.15.1: +vee-validate@4.15.1, vee-validate@^4.15.1: version "4.15.1" resolved "https://registry.yarnpkg.com/vee-validate/-/vee-validate-4.15.1.tgz#66e787e88916baa05f42e53bc0848e0878d50f91" integrity sha512-DkFsiTwEKau8VIxyZBGdO6tOudD+QoUBPuHj3e6QFqmbfCRj1ArmYWue9lEp6jLSWBIw4XPlDLjFIZNLdRAMSg== @@ -12265,16 +12662,16 @@ vue3-virtual-scroll-list@0.2.1: resolved "https://registry.yarnpkg.com/vue3-virtual-scroll-list/-/vue3-virtual-scroll-list-0.2.1.tgz#7fdc5be066c9b8d877614626a0bc02eb1fd12ad0" integrity sha512-G4KxITUOy9D4ro15zOp40D6ogmMefzjIyMsBKqN3xGbV1P6dlKYMx+BBXCKm3Nr/6iipcUKM272Sh2AJRyWMyQ== -vue@3.5.29: - version "3.5.29" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.29.tgz#859a1cc5219eb1228c7ce6f355b27de080517111" - integrity sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA== +vue@3.5.42: + version "3.5.42" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.42.tgz#6099e750a19c68a5c09f785808d5abb01558a3c1" + integrity sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA== dependencies: - "@vue/compiler-dom" "3.5.29" - "@vue/compiler-sfc" "3.5.29" - "@vue/runtime-dom" "3.5.29" - "@vue/server-renderer" "3.5.29" - "@vue/shared" "3.5.29" + "@vue/compiler-dom" "3.5.42" + "@vue/compiler-sfc" "3.5.42" + "@vue/runtime-dom" "3.5.42" + "@vue/server-renderer" "3.5.42" + "@vue/shared" "3.5.42" vuedraggable@4.1.0: version "4.1.0" @@ -12290,6 +12687,11 @@ vuex@4.1.0: dependencies: "@vue/devtools-api" "^6.0.0-beta.11" +w3c-keyname@^2.2.4: + version "2.2.8" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" + integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== + w3c-xmlserializer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" @@ -12670,6 +13072,11 @@ xml-name-validator@^4.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== +xml-name-validator@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz#82be9b957f7afdacf961e5980f1bf227c0bf7673" + integrity sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== + xml-naming@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/xml-naming/-/xml-naming-0.1.0.tgz#8ab7106c5b8d23caa2fabac1cadf17136379fbd8"