diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7569576a..52b7a116 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -58,6 +58,9 @@ jobs: - name: Build Library run: pnpm build:lib + - name: Run Prototype Pollution Security Tests + run: pnpm test:security + - name: Build Website (GitHub demo site) run: pnpm build:demo diff --git a/package.json b/package.json index a46c7c0f..b24f9ae2 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "new-publish": "lerna publish from-package", "roll-new-release": "pnpm build && pnpm new-version && pnpm new-publish", "serve:demo": "pnpm -r --stream --filter=\"{packages/demo/**}\" dev", + "test:security": "pnpm -r --stream --filter=\"{packages/multiple-select-vanilla/**}\" test:security", "test:e2e": "remove playwright-report && playwright test --config playwright/playwright.config.ts", "test:e2e:debug": "playwright test --config playwright/playwright.config.ts --ui --debug", "test:e2e:ui": "playwright test --config playwright/playwright.config.ts --ui", @@ -56,13 +57,13 @@ "pnpm": "11.x" }, "devDependencies": { - "@biomejs/biome": "^2.5.7", - "@lerna-lite/cli": "^5.4.2", - "@lerna-lite/publish": "^5.4.2", - "@lerna-lite/watch": "^5.4.2", + "@biomejs/biome": "^2.5.9", + "@lerna-lite/cli": "^5.6.1", + "@lerna-lite/publish": "^5.6.1", + "@lerna-lite/watch": "^5.6.1", "@playwright/test": "^1.62.1", - "@types/node": "^26.1.2", - "conventional-changelog-conventionalcommits": "^10.2.1", + "@types/node": "^26.2.0", + "conventional-changelog-conventionalcommits": "^10.4.0", "cross-env": "catalog:", "npm-run-all2": "^9.0.3", "remove-glob": "catalog:", diff --git a/packages/demo/src/main.ts b/packages/demo/src/main.ts index 7c97dc27..8e3046ad 100644 --- a/packages/demo/src/main.ts +++ b/packages/demo/src/main.ts @@ -5,7 +5,6 @@ import 'font-awesome/css/font-awesome.css'; import { createDomElement, emptyElement } from 'multiple-select-vanilla'; import { exampleRouting, navbarRouting } from './app-routing.js'; -// biome-ignore lint/correctness/useImportExtensions: false positive import mainHtml from './main.html?raw'; import './style.scss'; diff --git a/packages/multiple-select-vanilla/.npmignore b/packages/multiple-select-vanilla/.npmignore index 69a14548..e6c023c4 100644 --- a/packages/multiple-select-vanilla/.npmignore +++ b/packages/multiple-select-vanilla/.npmignore @@ -3,4 +3,5 @@ tsconfig.tsbuildinfo node_modules build-prod.mjs build-watch.mjs -CHANGELOG.md \ No newline at end of file +CHANGELOG.md +test diff --git a/packages/multiple-select-vanilla/package.json b/packages/multiple-select-vanilla/package.json index 9efcfb19..c43bdeac 100644 --- a/packages/multiple-select-vanilla/package.json +++ b/packages/multiple-select-vanilla/package.json @@ -60,7 +60,8 @@ "sass:build": "sass src/styles:dist/styles/css --style=compressed --quiet-deps --no-source-map && pnpm sass:build:closing", "sass:build:closing": "postcss dist/styles/css/**/* --dir dist/styles/css --base dist/styles/css --no-map --use cssnano --use autoprefixer --style=compressed", "sass:watch": "sass src/styles:dist/styles/css --watch --style=compressed --quiet-deps --no-source-map", - "sass:copy": "copyfiles \"./src/styles/**/*.scss\" dist/styles/sass --up 2 --stat" + "sass:copy": "copyfiles \"./src/styles/**/*.scss\" dist/styles/sass --up 2 --stat", + "test:security": "pnpm build:all && node --test test/*.test.mjs" }, "dependencies": { "@types/trusted-types": "^2.0.7" diff --git a/packages/multiple-select-vanilla/src/MultipleSelectInstance.ts b/packages/multiple-select-vanilla/src/MultipleSelectInstance.ts index 7a51b406..849e9a70 100644 --- a/packages/multiple-select-vanilla/src/MultipleSelectInstance.ts +++ b/packages/multiple-select-vanilla/src/MultipleSelectInstance.ts @@ -79,7 +79,7 @@ export class MultipleSelectInstance { protected elm: HTMLInputElement | HTMLSelectElement | HTMLSpanElement, options?: Partial>, ) { - this.options = Object.assign({}, Constants.DEFAULTS, this.elm.dataset, options) as MultipleSelectOption; + this.options = { ...Constants.DEFAULTS, ...this.elm.dataset, ...options } as MultipleSelectOption; this._bindEventService = new BindingEventService({ distinctEvent: true }); } @@ -132,12 +132,13 @@ export class MultipleSelectInstance { protected initLocale() { if (this.options.locale) { if (typeof this.options.locale === 'object') { - Object.assign(this.options, this.options.locale); + this.options = { ...this.options, ...this.options.locale }; return; } - // Use locales from options, fallback to instance property - const locales = (this.options.locales || this.locales || {}) as Record; + // Use locales from own options only, fallback to instance property + const optionLocales = Object.prototype.hasOwnProperty.call(this.options, 'locales') ? this.options.locales : undefined; + const locales = (optionLocales || this.locales || {}) as Record; const parts = this.options.locale.split(/-|_/); parts[0] = parts[0].toLowerCase(); @@ -145,15 +146,11 @@ export class MultipleSelectInstance { parts[1] = parts[1].toUpperCase(); } - if (locales[this.options.locale]) { - Object.assign(this.options, locales[this.options.locale]); - } else if (locales[parts.join('-')]) { - Object.assign(this.options, locales[parts.join('-')]); - } else if (locales[parts[0]]) { - Object.assign(this.options, locales[parts[0]]); - } else { + const localeKey = [this.options.locale, parts.join('-'), parts[0]].find(key => Object.prototype.hasOwnProperty.call(locales, key)); + if (!localeKey) { throw new Error(`[multiple-select-vanilla] invalid locales "${this.options.locale}", make sure to import it before using it`); } + this.options = { ...this.options, ...locales[localeKey] }; } } @@ -1664,7 +1661,7 @@ export class MultipleSelectInstance { */ getOptions(returnDeepCopy = true) { // deep copy and remove data - const options = Object.assign({}, this.options); + const options = { ...this.options }; delete options.data; return returnDeepCopy ? deepCopy(options) : this.options; @@ -1675,7 +1672,7 @@ export class MultipleSelectInstance { if (compareObjects(this.options, options, true)) { return; } - this.options = Object.assign(this.options, options); + this.options = { ...this.options, ...options }; this.destroy(false); this.init(); } diff --git a/packages/multiple-select-vanilla/src/services/virtual-scroll.ts b/packages/multiple-select-vanilla/src/services/virtual-scroll.ts index 89cd277c..383a097f 100644 --- a/packages/multiple-select-vanilla/src/services/virtual-scroll.ts +++ b/packages/multiple-select-vanilla/src/services/virtual-scroll.ts @@ -27,7 +27,7 @@ export class VirtualScroll { this.parentEl = options.contentEl?.parentElement; this.callback = options.callback; - this.cache = {} as VirtualCache; + this.cache = Object.create(null) as VirtualCache; this.scrollTop = this.scrollEl.scrollTop; this.initDOM(this.rows); @@ -51,7 +51,7 @@ export class VirtualScroll { reset(rows: HtmlStruct[]) { this.lastCluster = 0; - this.cache = {} as any; + this.cache = Object.create(null) as VirtualCache; emptyElement(this.contentEl); this.initDOM(rows); } diff --git a/packages/multiple-select-vanilla/src/utils/domUtils.ts b/packages/multiple-select-vanilla/src/utils/domUtils.ts index 84108102..47229d1b 100644 --- a/packages/multiple-select-vanilla/src/utils/domUtils.ts +++ b/packages/multiple-select-vanilla/src/utils/domUtils.ts @@ -1,6 +1,16 @@ import type { HtmlStruct, InferDOMType } from '../models/interfaces.js'; import { isDefined, objectRemoveEmptyProps } from './utils.js'; +const UNSAFE_DOM_PROPERTY_NAMES = new Set(['__proto__', 'prototype', 'constructor', 'toString', 'valueOf', 'hasOwnProperty']); + +function assertSafeDomProperties(properties: object) { + for (const propertyName of Object.keys(properties)) { + if (UNSAFE_DOM_PROPERTY_NAMES.has(propertyName)) { + throw new TypeError(`[multiple-select-vanilla] unsafe DOM property name "${propertyName}"`); + } + } +} + export interface HtmlElementPosition { top: number; bottom: number; @@ -51,10 +61,13 @@ export function createDomElement(tagName); if (elementOptions) { + assertSafeDomProperties(elementOptions); Object.keys(elementOptions).forEach(elmOptionKey => { const elmValue = elementOptions[elmOptionKey as keyof typeof elementOptions]; - if (typeof elmValue === 'object') { - Object.assign(elm[elmOptionKey as K] as object, elmValue); + const elmTarget = elm[elmOptionKey as K]; + if (typeof elmValue === 'object' && elmValue !== null && typeof elmTarget === 'object' && elmTarget !== null) { + assertSafeDomProperties(elmValue); + Object.assign(elmTarget, elmValue); } else { elm[elmOptionKey as K] = (elementOptions as any)[elmOptionKey as keyof typeof elementOptions]; } @@ -104,7 +117,7 @@ export function createDomStructure(item: HtmlStruct, appendToElm?: HTMLElement, /** takes an html block object and converts to a real HTMLElement */ export function convertItemRowToHtml(item: HtmlStruct): HTMLElement { - if (item.hasOwnProperty('tagName')) { + if (Object.prototype.hasOwnProperty.call(item, 'tagName')) { return createDomStructure(item); } return document.createElement('li'); diff --git a/packages/multiple-select-vanilla/test/prototype-pollution.test.mjs b/packages/multiple-select-vanilla/test/prototype-pollution.test.mjs new file mode 100644 index 00000000..17521c1f --- /dev/null +++ b/packages/multiple-select-vanilla/test/prototype-pollution.test.mjs @@ -0,0 +1,155 @@ +import assert from 'node:assert/strict'; +import { after, test } from 'node:test'; + +import { MultipleSelectInstance, VirtualScroll, convertItemRowToHtml, createDomElement } from '../dist/index.js'; + +const originalDocument = globalThis.document; + +after(() => { + globalThis.document = originalDocument; +}); + +test('createDomElement rejects prototype and inherited built-in property names', () => { + const elementPrototype = {}; + globalThis.document = { + createElement: () => Object.create(elementPrototype), + }; + + for (const propertyName of ['__proto__', 'prototype', 'constructor', 'toString', 'valueOf', 'hasOwnProperty']) { + const properties = { [propertyName]: { polluted: propertyName } }; + assert.throws(() => createDomElement('div', properties), /unsafe DOM property name/); + } + + assert.equal(elementPrototype.polluted, undefined); + assert.equal(Object.polluted, undefined); + assert.equal(Object.prototype.toString.polluted, undefined); + assert.equal(Object.prototype.valueOf.polluted, undefined); + assert.equal(Object.prototype.hasOwnProperty.polluted, undefined); +}); + +test('createDomElement still assigns ordinary and nested DOM properties', () => { + const style = {}; + const dataset = {}; + globalThis.document = { + createElement: () => ({ style, dataset }), + }; + + const element = createDomElement('div', { + className: 'safe-class', + dataset: { key: 'safe-key' }, + style: { display: 'none' }, + }); + + assert.equal(element.className, 'safe-class'); + assert.deepEqual(element.dataset, { key: 'safe-key' }); + assert.deepEqual(element.style, { display: 'none' }); +}); + +test('createDomElement does not merge objects into inherited functions', () => { + const addEventListener = () => {}; + const elementPrototype = { addEventListener }; + globalThis.document = { + createElement: () => Object.create(elementPrototype), + }; + + const payload = { polluted: true }; + const element = createDomElement('div', { addEventListener: payload }); + + assert.equal(addEventListener.polluted, undefined); + assert.equal(Object.hasOwn(element, 'addEventListener'), true); + assert.equal(element.addEventListener, payload); +}); + +test('convertItemRowToHtml supports prototype-free and overridden input objects', () => { + globalThis.document = { + createElement: tagName => ({ tagName, appendChild: () => {}, setAttribute: () => {} }), + }; + + const prototypeFreeItem = Object.assign(Object.create(null), { tagName: 'div', props: {} }); + const overriddenItem = { tagName: 'span', props: {}, hasOwnProperty: null }; + + assert.equal(convertItemRowToHtml(prototypeFreeItem).tagName, 'div'); + assert.equal(convertItemRowToHtml(overriddenItem).tagName, 'span'); +}); + +test('VirtualScroll uses a prototype-free cache across resets', () => { + const createElement = tagName => ({ tagName, appendChild: () => {}, setAttribute: () => {}, offsetHeight: 10 }); + globalThis.document = { createElement }; + + const children = []; + const contentElement = { + children, + parentElement: null, + appendChild: child => children.push(child), + removeChild: child => children.splice(children.indexOf(child), 1), + get firstChild() { + return children[0]; + }, + get lastChild() { + return children.at(-1); + }, + }; + const scrollElement = { + scrollTop: 0, + addEventListener: () => {}, + removeEventListener: () => {}, + }; + const rows = [{ tagName: 'li', props: { className: 'row' } }]; + + const virtualScroll = new VirtualScroll({ rows, scrollEl: scrollElement, contentEl: contentElement, callback: () => {} }); + assert.equal(Object.getPrototypeOf(virtualScroll.cache), null); + + virtualScroll.reset(rows); + assert.equal(Object.getPrototypeOf(virtualScroll.cache), null); +}); + +test('options treat special names as own data without changing their prototype', () => { + const maliciousOptions = JSON.parse('{"__proto__":{"polluted":true},"constructor":{"polluted":true},"toString":{"polluted":true}}'); + const instance = new MultipleSelectInstance({ dataset: {} }, maliciousOptions); + const options = instance.getOptions(false); + + assert.equal(Object.getPrototypeOf(options), Object.prototype); + assert.equal( + Object.getOwnPropertyDescriptor(options, '__proto__')?.value, + Object.getOwnPropertyDescriptor(maliciousOptions, '__proto__')?.value, + ); + assert.equal(Object.prototype.polluted, undefined); + assert.equal(Object.polluted, undefined); + assert.equal(Object.prototype.toString.polluted, undefined); +}); + +test('refreshOptions cannot replace the options prototype', () => { + const instance = new MultipleSelectInstance({ dataset: {} }); + instance.destroy = () => {}; + instance.init = () => {}; + + const maliciousOptions = JSON.parse('{"__proto__":{"polluted":true}}'); + instance.refreshOptions(maliciousOptions); + const options = instance.getOptions(false); + + assert.equal(Object.getPrototypeOf(options), Object.prototype); + assert.equal( + Object.getOwnPropertyDescriptor(options, '__proto__')?.value, + Object.getOwnPropertyDescriptor(maliciousOptions, '__proto__')?.value, + ); + assert.equal(Object.prototype.polluted, undefined); +}); + +test('locale lookup ignores inherited option and registry properties', () => { + const localeName = 'polluted-locale'; + const pollutedLocale = { + formatSelectAll: () => 'polluted', + }; + Object.prototype.locales = { [localeName]: pollutedLocale }; + + try { + const instance = new MultipleSelectInstance({ dataset: {} }, { locale: localeName }); + assert.throws(() => instance.initLocale(), /invalid locales/); + } finally { + delete Object.prototype.locales; + } + + const instance = new MultipleSelectInstance({ dataset: {} }, { locale: localeName }); + instance.locales = Object.create({ [localeName]: pollutedLocale }); + assert.throws(() => instance.initLocale(), /invalid locales/); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31e4a6a9..ab7f3637 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,34 +23,34 @@ catalogs: version: 7.0.2 overrides: - ip-address: ^10.4.0 - undici: ^8.10.0 + ip-address: ^10.5.0 + undici: ^7.29.0 importers: .: devDependencies: '@biomejs/biome': - specifier: ^2.5.7 - version: 2.5.7 + specifier: ^2.5.9 + version: 2.5.9 '@lerna-lite/cli': - specifier: ^5.4.2 - version: 5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/version@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.4.2)(@types/node@26.1.2) + specifier: ^5.6.1 + version: 5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/version@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.6.1)(@types/node@26.2.0) '@lerna-lite/publish': - specifier: ^5.4.2 - version: 5.4.2(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1) + specifier: ^5.6.1 + version: 5.6.1(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1) '@lerna-lite/watch': - specifier: ^5.4.2 - version: 5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/version@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1))(@types/node@26.1.2) + specifier: ^5.6.1 + version: 5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/version@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1))(@types/node@26.2.0) '@playwright/test': specifier: ^1.62.1 version: 1.62.1 '@types/node': - specifier: ^26.1.2 - version: 26.1.2 + specifier: ^26.2.0 + version: 26.2.0 conventional-changelog-conventionalcommits: - specifier: ^10.2.1 - version: 10.2.1 + specifier: ^10.4.0 + version: 10.4.0 cross-env: specifier: 'catalog:' version: 10.1.0 @@ -90,7 +90,7 @@ importers: version: 7.0.2 vite: specifier: ^8.2.1 - version: 8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(sass@1.102.0)(yaml@2.9.0) + version: 8.2.1(@types/node@26.2.0)(esbuild@0.28.1)(sass@1.102.0)(yaml@2.9.0) packages/multiple-select-vanilla: dependencies: @@ -134,59 +134,59 @@ importers: packages: - '@biomejs/biome@2.5.7': - resolution: {integrity: sha512-zr8K/DcY5tYsQOQwqMJ0AWElo6QgmgNI7idXgXLhevVszlt8RGVpesEJPqx3ThazLaOwjJ5Y8fz3BtH5fGZNsw==} + '@biomejs/biome@2.5.9': + resolution: {integrity: sha512-KkgCvdHB4IhtpHpF564plA9jo6fDOwWGQ/3jvreLzgOtRLEDoPqr7QO9qejNA8jKwDsSkAKr77hqBHnyUbIw4g==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.5.7': - resolution: {integrity: sha512-vxo/Ls3/PYdQWyLhYYcgMOCzQypAjcY+iihS8M0wW03l16TCLW4zqZzGo75gm1VdCMj38hTVZ31KBWrZ4G9dJw==} + '@biomejs/cli-darwin-arm64@2.5.9': + resolution: {integrity: sha512-am22pX2aBqznqq1eMyIj/bZ++riF3Lk6ct7cbv+gQK0csFhr+d8O0RkOi2FF2qSgFgANbqNkIZ0/PxlnW2pLFg==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.5.7': - resolution: {integrity: sha512-Cd3Ga61amT/Yl/0x8elP5hhGYaFy4bw6WuysTgf7oo8TA5tJ5A1k+DkVoJ2BHbTVil51gTX9VPzArnrlLJ3Kyg==} + '@biomejs/cli-darwin-x64@2.5.9': + resolution: {integrity: sha512-l44KWDHLDvEnD0N/XcrVs7VXb3A18xL7QS3WB0eL93wbmk529ffIG55vleGCqaunpRUjLrdnjK05Qki1dsjylg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.5.7': - resolution: {integrity: sha512-xPI5yB6XlpDbNkS+bm1t42olw5c4l3UrlOmLg7KtLJvjvkNF/1V4tnUgfkylGIeb3u/T+BzMGYqgQhzjAoJzuQ==} + '@biomejs/cli-linux-arm64-musl@2.5.9': + resolution: {integrity: sha512-7ImVPwBLCtkmpR5esd8RHhTqW94f0JLJQum6AneYcy94jRm18TaPPm7slaigGzFhfgt3QiD1Vj52LKmBAnKizA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] libc: [musl] - '@biomejs/cli-linux-arm64@2.5.7': - resolution: {integrity: sha512-rR2QE0yF2GYSuYuKIa7pKvODGJqnOH+2eDREAM8wV+mWKSkMQKdAp4zXEZfTaxY8PMoNONnpgSWcBCyLDPDOKg==} + '@biomejs/cli-linux-arm64@2.5.9': + resolution: {integrity: sha512-ICaK+IYaVZvKbBxX2rwrPT0DdUDMnE9Vm3nQGe+mltQPmUg19pONzkPWGdY4FCsoreDETWDynvdt4ysCbF5gNQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] libc: [glibc] - '@biomejs/cli-linux-x64-musl@2.5.7': - resolution: {integrity: sha512-rE5VZi+qtmPgQH+l7jVxYoZ18b/TiHEhulhMpjmCZH1PltSbjRcxNWywC3HZ9tYottG7ORkeTtoscBilKSBm0g==} + '@biomejs/cli-linux-x64-musl@2.5.9': + resolution: {integrity: sha512-RXGaD0o1/pTTguYw1aeDJh9ad6Lfrui0fI7mBderTyGr7WuUJkBIttgLkR3XJyoxOkkgfBDspaUT8wXArTqLZw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] libc: [musl] - '@biomejs/cli-linux-x64@2.5.7': - resolution: {integrity: sha512-FQgqJhscrqJUFptGaRSUJWlXAExwWcDwLuK49dvKfkQ1bB5SEEyFssnsxQY83Xm6jR0EbbX3+8+D5bfvYqUG2Q==} + '@biomejs/cli-linux-x64@2.5.9': + resolution: {integrity: sha512-z22Q/zFYSvbIJfW1CbfZPu4X8PddS6Qd2ORbc6h+aT6EcwAxUF3m6fA4HjNvA3TU4X0dTJRwNPB165ES3PJXzg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] libc: [glibc] - '@biomejs/cli-win32-arm64@2.5.7': - resolution: {integrity: sha512-Oq4x0CCwP4jirrcTywXs5kOGZ4v5vuEP+gWrbtjApOA2CL9F3F9GlIdQIci8AKSCa/zURanMRpX/4wQ7Am6hHg==} + '@biomejs/cli-win32-arm64@2.5.9': + resolution: {integrity: sha512-nHK+/HHC+D0ogAHUxomgoSTdjImb6fmNNVTKmf0tyu4eDL1DqPKIHc+i+UL8+b0RnAu8224qo8F2tCVnaT0A3w==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.5.7': - resolution: {integrity: sha512-V+0wu/nrj2S+MhP4EQ0uHNolP0IALEsz45pg0WoKkHfDeh0+ItHwP/p7bX5RPoMOl9NkpHYWdYPhIcy2mACHvQ==} + '@biomejs/cli-win32-x64@2.5.9': + resolution: {integrity: sha512-Yiq0H56LjXSSw/hd9YkXgSLQfzyDJzbzU2TezozxyNw+uKWAqOtqGVvBfzKRRDiaFF5avGAhHdWKx7LtDOShUw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -194,20 +194,20 @@ packages: '@colordx/core@5.5.0': resolution: {integrity: sha512-3PxTH8itZzltK0U9jTwVVnjLXvnDYuq3m+QXsHkENxWiPRh4WaoLcs1SQjqgZ55kS+QyirpH5BVwzP2gMVG6EQ==} - '@conventional-changelog/git-client@3.1.0': - resolution: {integrity: sha512-Tqa/gHco2WJWa740NRjOrfKVvzIqxkZpecb8bemaQ8sKM5PXb1UK4uTyTb/1wIqNuOVaDOFxyBdhTIQZn6gdjQ==} + '@conventional-changelog/git-client@3.1.2': + resolution: {integrity: sha512-jZqwnJwf7nboIlAcw/mkOjVa6DexCcUOgT2oOQgkoi3z9vR8tGFkcMy2BFcYwjhL9sYcDDXkRQDayiDieCoW7A==} engines: {node: '>=22'} peerDependencies: conventional-commits-filter: ^6.0.1 - conventional-commits-parser: ^7.0.1 + conventional-commits-parser: ^7.1.2 peerDependenciesMeta: conventional-commits-filter: optional: true conventional-commits-parser: optional: true - '@conventional-changelog/template@1.2.1': - resolution: {integrity: sha512-TzlTVpKPjaqW6qOYjQcYUDuGsLCNsvFHVBXkYGTAnf5V37jCWrE5haKNXzz0WZUtVHjrpV76L1buANjwXMfT8w==} + '@conventional-changelog/template@1.4.0': + resolution: {integrity: sha512-aalGyl7dbB5PArRebDIX43ZvBlXrYm9uWzGJ26t+4SzJVPsOuvfILGGbw5X4yX7i50YEmJ8zvbiWnqH/AAnZqg==} engines: {node: '>=22'} '@emnapi/core@2.0.0-alpha.3': @@ -386,8 +386,8 @@ packages: resolution: {integrity: sha512-3eTuUO1vH2cZm2ZKHeQxnOqlTi9EfZDGgIe3BL3I4u+rJHocr9Fz86M4fjYABPvFnQG/gGK551HqDiIcETwU6Q==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} - '@inquirer/core@11.2.1': - resolution: {integrity: sha512-Qd6GJT1yVyrZZCfN8W2qKF5ApmqryXRhRKCuip8h01x2w/esJQ2XIYc6f9abMIHgKQdBfFTSOdbHRLAhuM09UA==} + '@inquirer/core@12.0.0': + resolution: {integrity: sha512-+nnvFEXIB08CZNVXpvW3B+zHW96QXvGUjNKJ8NJIPqAZi5Kd4WhYt2S3C234ReepG1qw2HOlEUbjYVHBowXObA==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -395,8 +395,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@5.1.1': - resolution: {integrity: sha512-YmQpenjbFSHAK3sOd44puHh3V1KXXr+JiNpUztoSQ4drLh2rTVzTap/YtlAVu/5xavifIlBfNEzJ/neZJ1a/1g==} + '@inquirer/expand@5.1.2': + resolution: {integrity: sha512-OWIH1IyyWqEKIyqC9Xy+Bnga7NkGMovFdo4atYZMUOTRqf6rO2WCv9E/1MyzvOErDBCxs+9UFliRUDc50xs/jw==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -404,12 +404,12 @@ packages: '@types/node': optional: true - '@inquirer/figures@2.0.7': - resolution: {integrity: sha512-aJ8TBPOGB6f/2qziPfElISTCEd5XOYTFckA2SGjhNmiKzfK/u4ot3v0DUzGVdUnKjN10EqnnEPck36BkyfLnJw==} + '@inquirer/figures@2.0.8': + resolution: {integrity: sha512-tApbon79GM9ry56ja/Ud3SY2CL4TQsao9fIwDQbgTeNY55025GdMzQ2+UdegV/lx51VNGUB59M0v0nMpybYY4Q==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} - '@inquirer/input@5.1.2': - resolution: {integrity: sha512-9K/DDBSQpOyZSkt6sOVP9Vo0TR7atX2kuILsUu0x3wVcVbe97lJwIJKMLdMw25tDYuXl/qp6erT0Xs1rfmcfZg==} + '@inquirer/input@5.1.3': + resolution: {integrity: sha512-F/BZHtyEzP+HO+IGVd4AjBRgvX/ywm42bx8S0+dENk2YclzE9tJ3X/15THwtT6ehApmKvdYDMsVTuyyDod0gOQ==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -417,8 +417,8 @@ packages: '@types/node': optional: true - '@inquirer/select@5.2.1': - resolution: {integrity: sha512-FlDndEUww8m7BfukO2nJa25vhD+H5jxxCv4oGioKqzyWz3nPHhhw4LKdYRSlXuAx7DsdWia7iyaBPKKS95Evfw==} + '@inquirer/select@5.2.2': + resolution: {integrity: sha512-RkI8dRHWt+bh04oLixvF1kFzKC7e5rqJoHKkzcqSHATebBXFC6GmrT8ddbVkgSzLV0HnHs2cPFuBINr8otij8Q==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -442,8 +442,8 @@ packages: '@isaacs/string-locale-compare@1.1.0': resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - '@lerna-lite/cli@5.4.2': - resolution: {integrity: sha512-iYGYCmNUez3w738TSeJcC2pEY1vnvYl3F7a1OY7wCitKrtVFsXVwRkMH/e0m2AmHKT33HOH5x4dANiWE+K3jKQ==} + '@lerna-lite/cli@5.6.1': + resolution: {integrity: sha512-P2VaDjFAAzXa4nTZwGaEDq2lZp+CGu2xIPP9DwhwYh8A6wkIcRYUY9JIwVyftLa1l1hXZKpQwnTAd4b/YUMiNQ==} engines: {node: ^22.17.0 || >=24.0.0} hasBin: true peerDependencies: @@ -467,28 +467,28 @@ packages: '@lerna-lite/watch': optional: true - '@lerna-lite/core@5.4.2': - resolution: {integrity: sha512-z1XL/x/6PJofwvV7ye5yc9Bxr43DkKxeyaHTXwongON1JIbaVKFFMfK8Wnp3TlC2h6bkyp0sZsD6tXMz5fCiQg==} + '@lerna-lite/core@5.6.1': + resolution: {integrity: sha512-lpxw1oHYpA+T0x3MRsyLUZWhBy95DK5hNx1+pX6dmX5Ll1yJfP6zawXIcqAM+H3X9lVmPj4s3KOkf4Cg7+mrBg==} engines: {node: ^22.17.0 || >=24.0.0} - '@lerna-lite/init@5.4.2': - resolution: {integrity: sha512-Wh3VpAaKHMsbu2WNZVFZMWtSGC3YZ8FZvB8BxwkgkU6K2zq6FN6bi8hCgKeos2IF+kGpBg8YXYkh5GJs49Ferg==} + '@lerna-lite/init@5.6.1': + resolution: {integrity: sha512-opw4Xy6v1EutrP2rqoPPVUC41nl6TnPy49RmB2OB+an8aBz/NY7pVJrszkS1rMV+StW6M4S4IE8a37WaEVBI4g==} engines: {node: ^22.17.0 || >=24.0.0} '@lerna-lite/npmlog@5.4.1': resolution: {integrity: sha512-APylzmp9eDWsM5ZLnTUwV6uwTshtWAbKIF4sA0/SgBsdbgfJUVoz5VTviBnyODCKRzpjcR1MAlRTcjUmKXSbKA==} engines: {node: ^22.17.0 || >=24.0.0} - '@lerna-lite/publish@5.4.2': - resolution: {integrity: sha512-LcK9RMeS0MJO1mMO5490o27cncU7YOIPOarK1jvxlIshtv90PktQM50Cf+XbL9xAnhuEd5X7jTi0cKx3MpzuUg==} + '@lerna-lite/publish@5.6.1': + resolution: {integrity: sha512-Xx8riPC9PIrZxn46ORBv6FKeF2L2OCcoeLP1GzgADhKX/NUTZJ8X/B3QurAsSGz+9rHXLpMGLgBoc3sSFrPc1Q==} engines: {node: ^22.17.0 || >=24.0.0} - '@lerna-lite/version@5.4.2': - resolution: {integrity: sha512-NwVJQMPnhOyUeSuLamalVr35503AmcdwjOGx/jQXlJsJsMNGus5M5wsnpxqaUkGf4s7R3ux6pR97PIBFCDLGag==} + '@lerna-lite/version@5.6.1': + resolution: {integrity: sha512-J2tKred9b/FBrfxv8WWm+1BxyXbg5dGzgK9AQXt8cDNaxAxvvns1qmMkmFnvISGPCl6iCzIlCSboOAtUldEjpg==} engines: {node: ^22.17.0 || >=24.0.0} - '@lerna-lite/watch@5.4.2': - resolution: {integrity: sha512-tH/52cCVBUDqC5GNMWduQidRrvdqRK0x07LQoehbLasm66P9dxcjKoX3RDiovdsgegGQAFo5Nk2rlsgCudaCVA==} + '@lerna-lite/watch@5.6.1': + resolution: {integrity: sha512-kabtX6En7NkXjILdKipNZVKgaqfwTHbo0fSxpQog1VzyNBCEkuBJ5UnMo0qWYPG0MHA5DtyxJJ3YgfPOJpucDg==} engines: {node: ^22.17.0 || >=24.0.0} '@napi-rs/wasm-runtime@1.2.2': @@ -502,8 +502,8 @@ packages: resolution: {integrity: sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==} engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/arborist@9.9.0': - resolution: {integrity: sha512-tzsb1R8mx0k0drlLDT/9ckEYaQHIaWnUti/ci2IaFoQqdqwfmYrc+90p1+QEZC/ocvqcxBep9P1xKw4FbAGofw==} + '@npmcli/arborist@9.9.1': + resolution: {integrity: sha512-K0mr16xJ/yiTApeGIFbpgZSvJFOvxO2VJnCBhP543t9NTlHzgL+ewpG0kaWv9xkjeESAlRWHG9Q4lbT/LqHbWw==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true @@ -858,8 +858,8 @@ packages: '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} - '@types/node@26.1.2': - resolution: {integrity: sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==} + '@types/node@26.2.0': + resolution: {integrity: sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==} '@types/parse-path@7.1.0': resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} @@ -1000,8 +1000,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + ansi-regex@6.3.0: + resolution: {integrity: sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==} engines: {node: '>=12'} ansi-styles@4.3.0: @@ -1064,8 +1064,8 @@ packages: peerDependencies: '@popperjs/core': ^2.11.8 - brace-expansion@5.0.8: - resolution: {integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} engines: {node: 20 || >=22} braces@3.0.3: @@ -1147,25 +1147,25 @@ packages: resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==} engines: {node: '>=18'} - conventional-changelog-angular@9.2.1: - resolution: {integrity: sha512-oWSL6ZhnXbYraOFTK3PgRAQJ8fADDAEv5K6AdeyQPLvjFmhG8+ejL0jZZp/R7vTmGJaBvZEE+sE7dB4bCv7sAw==} + conventional-changelog-angular@9.4.0: + resolution: {integrity: sha512-HdxRxuS8bBXVIuo4V82gvSwAXT0vYQUizrjs/izmPg5JdDstr8v8I5hduGL3iQbG+o310dUDxC4+LetuS5hu9w==} engines: {node: '>=22'} - conventional-changelog-conventionalcommits@10.2.1: - resolution: {integrity: sha512-n4Kr1HFMTf3iMbES0TMxKIcYtUUv4rKqyQQp2JwfOEfFCOfGT3Tq4mCyJ8S9/YPyWhydjfKrrvnyl+gCjA+mJQ==} + conventional-changelog-conventionalcommits@10.4.0: + resolution: {integrity: sha512-Rriac6ZrAlVm6cy9Bz4NSp+WMHpwNXoPIYex+HjCgduAVUSbnew29DQjQw0C4g9u3HtSYzGiGY+pdBXAZo+4aA==} engines: {node: '>=22'} conventional-changelog-preset-loader@6.0.1: resolution: {integrity: sha512-GZ8E3RQzXQb3JFy0pKl8oeSf7ENIhvAMvJr+PlWkavZOesLHHdhkfNJ4SvW35eo1Fu2+EyVxWQ1tVvtzAG2iWg==} engines: {node: '>=22'} - conventional-changelog-writer@9.2.0: - resolution: {integrity: sha512-eACD5BaAQCYjeI3RExkCZopNaaIuXzCP4kaAb2lEFXcGa/KOuxJfj8v/SnjhvF6377pYn0A2Gji+6GhwUK8rEA==} + conventional-changelog-writer@9.2.1: + resolution: {integrity: sha512-StlYSmW3wLedRaqohJMpP3YuWiAqtgD0/cpsai9frdDkXv7rxj0hRbpJrubPYvJxJsjplONsOobEQnPuS9UgCg==} engines: {node: '>=22'} hasBin: true - conventional-changelog@8.1.0: - resolution: {integrity: sha512-idt1JK+3+Nt7gqH/d/sEYWdDeR+5XPov/jssmFN6XxmYSRlonTWSDWhWUPkmm0zbwYjtVdt+4My5aiPkKyvocw==} + conventional-changelog@8.1.3: + resolution: {integrity: sha512-fOMwLCxm46znJKPB08jLxl1FD8SOZOQHktlzCVhvhhVUfq0KgQSryoYXsRRHs1aRlZPR1/QK5wztnY8sBNC2AA==} engines: {node: '>=22'} hasBin: true @@ -1173,8 +1173,8 @@ packages: resolution: {integrity: sha512-cs+LadpH7Kpw0M3k8wurk+sOVVDAENA0iK4OBOrkL94j5lEVYRJ4j3zd2bhY9qgzyrPqthdcYT3axzRN7AliMg==} engines: {node: '>=22'} - conventional-commits-parser@7.1.0: - resolution: {integrity: sha512-DPp6hkUjvwIivxbkrTiLXeRswNv1A/4GFA2X6scXma0AMa9632V3TwxmrlkUIEtUktiM3Ln+RrSH2xlP3/jUTw==} + conventional-commits-parser@7.1.2: + resolution: {integrity: sha512-O+x4N2yH+ijvqWlIyTHsXTAP+algNWgGbjY2duCe8w2vUMvUB95cLRslCPfTMQyLAKlet3bhZTdu6ozn4M+QJQ==} engines: {node: '>=22'} hasBin: true @@ -1417,8 +1417,8 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} engines: {node: '>=0.10.0'} ignore-walk@8.0.0: @@ -1441,8 +1441,8 @@ packages: resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} engines: {node: ^20.17.0 || >=22.9.0} - ip-address@10.4.0: - resolution: {integrity: sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==} + ip-address@10.5.0: + resolution: {integrity: sha512-R5SnVLJmgYYvf2F2ZgwSBnelz5G4q5AxIC277GDfUaNbrZKNANcBC7RHqYYePlszf4kBolVkJauG0ZjHHFh55g==} engines: {node: '>= 12'} is-binary-path@2.1.0: @@ -1601,8 +1601,8 @@ packages: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - lru-cache@11.5.1: - resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} + lru-cache@11.5.2: + resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} engines: {node: 20 || >=22} make-fetch-happen@15.0.6: @@ -1623,8 +1623,8 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} engines: {node: 18 || 20 || >=22} minimist@1.2.8: @@ -1760,8 +1760,8 @@ packages: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} - p-map@7.0.4: - resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + p-map@7.0.6: + resolution: {integrity: sha512-I4Prw6ivkd6p8PiYR1tXASOAOBzIJwu0TB7fqaX0c/8c3QAehNYmX57EijyGGGBt3c/BIowGwV03RVBtXvHEVg==} engines: {node: '>=18'} p-try@2.2.0: @@ -2016,6 +2016,10 @@ packages: resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} engines: {node: '>=4'} + postcss-selector-parser@7.1.5: + resolution: {integrity: sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==} + engines: {node: '>=4'} + postcss-svgo@8.0.3: resolution: {integrity: sha512-ADG8YNtwE5bcqvxw1gU0X7FkgdvinZZxWKHSCMwayX7gPl4XRmBMyiC84Ukal5bPS9Nk/2tI7siJwqxIN4/grg==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} @@ -2075,8 +2079,8 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - readdirp@5.0.0: - resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + readdirp@5.1.1: + resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==} engines: {node: '>= 20.19.0'} remove-glob@1.2.1: @@ -2187,6 +2191,10 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string-width@8.2.2: + resolution: {integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==} + engines: {node: '>=20'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -2206,19 +2214,15 @@ packages: engines: {node: '>=16'} hasBin: true - tar@7.5.19: - resolution: {integrity: sha512-4LeEWl96twnS2Q7Bz4MGqgazLqO+hJN63GZxXoIqh1T3VweYD997gbU1ItNsQafqqXTXd5WFyFdReLtwvRBNiw==} - engines: {node: '>=18'} - - tar@7.5.21: - resolution: {integrity: sha512-XdhtCvlMywwxpCW8YEq3lOXBJpUPTR2OHHcwLPO3HwsJqOHa2Ok/oJ7ruGzp+JrKoRPVCzJwAdEjqLW/vNRPHA==} + tar@7.5.22: + resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} engines: {node: '>=18'} thenby@1.3.4: resolution: {integrity: sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==} - tinyexec@1.2.4: - resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} + tinyexec@1.3.0: + resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} engines: {node: '>=18'} tinyglobby@0.2.17: @@ -2253,9 +2257,9 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - undici@8.10.0: - resolution: {integrity: sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==} - engines: {node: '>=22.19.0'} + undici@7.29.0: + resolution: {integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==} + engines: {node: '>=20.18.1'} universal-user-agent@7.0.3: resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==} @@ -2281,6 +2285,10 @@ packages: resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} engines: {node: ^20.17.0 || >=22.9.0} + verkit@0.4.0: + resolution: {integrity: sha512-sXMwN6DMHeouPfCxkxWkKAmxphWKEenHYY5H1nIBzU3PmDsmJp6kBXJdshjVdpMZuWCmL9SH7KFRx29AylpP6g==} + engines: {node: '>=18.12.0'} + vite@8.2.1: resolution: {integrity: sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2399,8 +2407,8 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yargs@18.0.0: - resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + yargs@18.1.0: + resolution: {integrity: sha512-2rAgRKu54VsHkqI0/tYkmluGXHD4KW7yZoycuqDQ15QOTnc2VVfy0nN/1eMhnQLO00A+dwtK20xuCnc1YGeUyg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} zeptomatch@2.1.0: @@ -2408,53 +2416,53 @@ packages: snapshots: - '@biomejs/biome@2.5.7': + '@biomejs/biome@2.5.9': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.5.7 - '@biomejs/cli-darwin-x64': 2.5.7 - '@biomejs/cli-linux-arm64': 2.5.7 - '@biomejs/cli-linux-arm64-musl': 2.5.7 - '@biomejs/cli-linux-x64': 2.5.7 - '@biomejs/cli-linux-x64-musl': 2.5.7 - '@biomejs/cli-win32-arm64': 2.5.7 - '@biomejs/cli-win32-x64': 2.5.7 - - '@biomejs/cli-darwin-arm64@2.5.7': + '@biomejs/cli-darwin-arm64': 2.5.9 + '@biomejs/cli-darwin-x64': 2.5.9 + '@biomejs/cli-linux-arm64': 2.5.9 + '@biomejs/cli-linux-arm64-musl': 2.5.9 + '@biomejs/cli-linux-x64': 2.5.9 + '@biomejs/cli-linux-x64-musl': 2.5.9 + '@biomejs/cli-win32-arm64': 2.5.9 + '@biomejs/cli-win32-x64': 2.5.9 + + '@biomejs/cli-darwin-arm64@2.5.9': optional: true - '@biomejs/cli-darwin-x64@2.5.7': + '@biomejs/cli-darwin-x64@2.5.9': optional: true - '@biomejs/cli-linux-arm64-musl@2.5.7': + '@biomejs/cli-linux-arm64-musl@2.5.9': optional: true - '@biomejs/cli-linux-arm64@2.5.7': + '@biomejs/cli-linux-arm64@2.5.9': optional: true - '@biomejs/cli-linux-x64-musl@2.5.7': + '@biomejs/cli-linux-x64-musl@2.5.9': optional: true - '@biomejs/cli-linux-x64@2.5.7': + '@biomejs/cli-linux-x64@2.5.9': optional: true - '@biomejs/cli-win32-arm64@2.5.7': + '@biomejs/cli-win32-arm64@2.5.9': optional: true - '@biomejs/cli-win32-x64@2.5.7': + '@biomejs/cli-win32-x64@2.5.9': optional: true '@colordx/core@5.5.0': {} - '@conventional-changelog/git-client@3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.0)': + '@conventional-changelog/git-client@3.1.2(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.2)': dependencies: '@simple-libs/child-process-utils': 2.0.0 '@simple-libs/stream-utils': 2.0.0 semver: 7.8.5 optionalDependencies: conventional-commits-filter: 6.0.1 - conventional-commits-parser: 7.1.0 + conventional-commits-parser: 7.1.2 - '@conventional-changelog/template@1.2.1': {} + '@conventional-changelog/template@1.4.0': {} '@emnapi/core@2.0.0-alpha.3': dependencies: @@ -2556,46 +2564,46 @@ snapshots: '@inquirer/ansi@2.0.7': {} - '@inquirer/core@11.2.1(@types/node@26.1.2)': + '@inquirer/core@12.0.0(@types/node@26.2.0)': dependencies: '@inquirer/ansi': 2.0.7 - '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@26.1.2) + '@inquirer/figures': 2.0.8 + '@inquirer/type': 4.0.7(@types/node@26.2.0) cli-width: 4.1.0 fast-wrap-ansi: 0.2.2 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 26.1.2 + '@types/node': 26.2.0 - '@inquirer/expand@5.1.1(@types/node@26.1.2)': + '@inquirer/expand@5.1.2(@types/node@26.2.0)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.2) - '@inquirer/type': 4.0.7(@types/node@26.1.2) + '@inquirer/core': 12.0.0(@types/node@26.2.0) + '@inquirer/type': 4.0.7(@types/node@26.2.0) optionalDependencies: - '@types/node': 26.1.2 + '@types/node': 26.2.0 - '@inquirer/figures@2.0.7': {} + '@inquirer/figures@2.0.8': {} - '@inquirer/input@5.1.2(@types/node@26.1.2)': + '@inquirer/input@5.1.3(@types/node@26.2.0)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.2) - '@inquirer/type': 4.0.7(@types/node@26.1.2) + '@inquirer/core': 12.0.0(@types/node@26.2.0) + '@inquirer/type': 4.0.7(@types/node@26.2.0) optionalDependencies: - '@types/node': 26.1.2 + '@types/node': 26.2.0 - '@inquirer/select@5.2.1(@types/node@26.1.2)': + '@inquirer/select@5.2.2(@types/node@26.2.0)': dependencies: '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@26.1.2) - '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@26.1.2) + '@inquirer/core': 12.0.0(@types/node@26.2.0) + '@inquirer/figures': 2.0.8 + '@inquirer/type': 4.0.7(@types/node@26.2.0) optionalDependencies: - '@types/node': 26.1.2 + '@types/node': 26.2.0 - '@inquirer/type@4.0.7(@types/node@26.1.2)': + '@inquirer/type@4.0.7(@types/node@26.2.0)': optionalDependencies: - '@types/node': 26.1.2 + '@types/node': 26.2.0 '@isaacs/fs-minipass@4.0.1': dependencies: @@ -2603,34 +2611,34 @@ snapshots: '@isaacs/string-locale-compare@1.1.0': {} - '@lerna-lite/cli@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/version@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)': + '@lerna-lite/cli@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/version@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)': dependencies: - '@lerna-lite/core': 5.4.2(@types/node@26.1.2) - '@lerna-lite/init': 5.4.2(@types/node@26.1.2) + '@lerna-lite/core': 5.6.1(@types/node@26.2.0) + '@lerna-lite/init': 5.6.1(@types/node@26.2.0) '@lerna-lite/npmlog': 5.4.1 dotenv: 17.4.2 import-local: 3.2.0 - yargs: 18.0.0 + yargs: 18.1.0 optionalDependencies: - '@lerna-lite/publish': 5.4.2(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1) - '@lerna-lite/version': 5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1) - '@lerna-lite/watch': 5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/version@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1))(@types/node@26.1.2) + '@lerna-lite/publish': 5.6.1(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1) + '@lerna-lite/version': 5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1) + '@lerna-lite/watch': 5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/version@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1))(@types/node@26.2.0) transitivePeerDependencies: - '@types/node' - '@lerna-lite/core@5.4.2(@types/node@26.1.2)': + '@lerna-lite/core@5.6.1(@types/node@26.2.0)': dependencies: - '@inquirer/expand': 5.1.1(@types/node@26.1.2) - '@inquirer/input': 5.1.2(@types/node@26.1.2) - '@inquirer/select': 5.2.1(@types/node@26.1.2) + '@inquirer/expand': 5.1.2(@types/node@26.2.0) + '@inquirer/input': 5.1.3(@types/node@26.2.0) + '@inquirer/select': 5.2.2(@types/node@26.2.0) '@lerna-lite/npmlog': 5.4.1 '@npmcli/run-script': 10.0.4 ci-info: 4.4.0 json5: 2.2.3 lilconfig: 3.1.3 npm-package-arg: 13.0.2 - semver: 7.8.5 - tinyexec: 1.2.4 + tinyexec: 1.3.0 + verkit: 0.4.0 write-file-atomic: 7.0.1 write-json-file: 7.0.0 yaml: 2.9.0 @@ -2638,9 +2646,9 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@lerna-lite/init@5.4.2(@types/node@26.1.2)': + '@lerna-lite/init@5.6.1(@types/node@26.2.0)': dependencies: - '@lerna-lite/core': 5.4.2(@types/node@26.1.2) + '@lerna-lite/core': 5.6.1(@types/node@26.2.0) write-json-file: 7.0.0 transitivePeerDependencies: - '@types/node' @@ -2650,13 +2658,13 @@ snapshots: fast-string-width: 3.0.2 signal-exit: 4.1.0 - '@lerna-lite/publish@5.4.2(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1)': + '@lerna-lite/publish@5.6.1(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1)': dependencies: - '@lerna-lite/cli': 5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/version@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.4.2)(@types/node@26.1.2) - '@lerna-lite/core': 5.4.2(@types/node@26.1.2) + '@lerna-lite/cli': 5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/version@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.6.1)(@types/node@26.2.0) + '@lerna-lite/core': 5.6.1(@types/node@26.2.0) '@lerna-lite/npmlog': 5.4.1 - '@lerna-lite/version': 5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1) - '@npmcli/arborist': 9.9.0 + '@lerna-lite/version': 5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1) + '@npmcli/arborist': 9.9.1 '@npmcli/package-json': 7.0.5 ci-info: 4.4.0 libnpmaccess: 10.0.3 @@ -2665,9 +2673,9 @@ snapshots: npm-packlist: 10.0.4 npm-registry-fetch: 19.1.1 pacote: 21.5.1 - semver: 7.8.5 ssri: 13.0.1 - tar: 7.5.21 + tar: 7.5.22 + verkit: 0.4.0 transitivePeerDependencies: - '@lerna-lite/exec' - '@lerna-lite/list' @@ -2677,24 +2685,24 @@ snapshots: - conventional-commits-filter - supports-color - '@lerna-lite/version@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1)': + '@lerna-lite/version@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1)': dependencies: - '@conventional-changelog/git-client': 3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.0) - '@conventional-changelog/template': 1.2.1 - '@lerna-lite/cli': 5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/version@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.4.2)(@types/node@26.1.2) - '@lerna-lite/core': 5.4.2(@types/node@26.1.2) + '@conventional-changelog/git-client': 3.1.2(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.2) + '@conventional-changelog/template': 1.4.0 + '@lerna-lite/cli': 5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/version@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.6.1)(@types/node@26.2.0) + '@lerna-lite/core': 5.6.1(@types/node@26.2.0) '@lerna-lite/npmlog': 5.4.1 '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 22.0.1 - conventional-changelog: 8.1.0(conventional-commits-filter@6.0.1) - conventional-changelog-angular: 9.2.1 - conventional-changelog-writer: 9.2.0 - conventional-commits-parser: 7.1.0 + conventional-changelog: 8.1.3 + conventional-changelog-angular: 9.4.0 + conventional-changelog-writer: 9.2.1 + conventional-commits-parser: 7.1.2 conventional-recommended-bump: 12.1.0 git-url-parse: 16.1.0 handlebars: 4.7.9 npm-package-arg: 13.0.2 - semver: 7.8.5 + verkit: 0.4.0 write-json-file: 7.0.0 zeptomatch: 2.1.0 transitivePeerDependencies: @@ -2706,10 +2714,10 @@ snapshots: - '@types/node' - conventional-commits-filter - '@lerna-lite/watch@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/version@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1))(@types/node@26.1.2)': + '@lerna-lite/watch@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/version@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1))(@types/node@26.2.0)': dependencies: - '@lerna-lite/cli': 5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/version@5.4.2(@lerna-lite/publish@5.4.2)(@lerna-lite/watch@5.4.2)(@types/node@26.1.2)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.4.2)(@types/node@26.1.2) - '@lerna-lite/core': 5.4.2(@types/node@26.1.2) + '@lerna-lite/cli': 5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/version@5.6.1(@lerna-lite/publish@5.6.1)(@lerna-lite/watch@5.6.1)(@types/node@26.2.0)(conventional-commits-filter@6.0.1))(@lerna-lite/watch@5.6.1)(@types/node@26.2.0) + '@lerna-lite/core': 5.6.1(@types/node@26.2.0) chokidar: 5.0.0 zeptomatch: 2.1.0 transitivePeerDependencies: @@ -2732,12 +2740,12 @@ snapshots: agent-base: 7.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - lru-cache: 11.5.1 + lru-cache: 11.5.2 socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color - '@npmcli/arborist@9.9.0': + '@npmcli/arborist@9.9.1': dependencies: '@gar/promise-retry': 1.0.3 '@isaacs/string-locale-compare': 1.1.0 @@ -2756,8 +2764,8 @@ snapshots: common-ancestor-path: 2.0.0 hosted-git-info: 9.0.3 json-stringify-nice: 1.1.4 - lru-cache: 11.5.1 - minimatch: 10.2.5 + lru-cache: 11.5.2 + minimatch: 10.2.6 nopt: 9.0.0 npm-install-checks: 8.0.0 npm-package-arg: 13.0.2 @@ -2785,7 +2793,7 @@ snapshots: '@gar/promise-retry': 1.0.3 '@npmcli/promise-spawn': 9.0.1 ini: 6.0.0 - lru-cache: 11.5.1 + lru-cache: 11.5.2 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 semver: 7.8.5 @@ -2801,7 +2809,7 @@ snapshots: '@npmcli/name-from-folder': 4.0.0 '@npmcli/package-json': 7.0.5 glob: 13.0.6 - minimatch: 10.2.5 + minimatch: 10.2.6 '@npmcli/metavuln-calculator@9.0.3': dependencies: @@ -2833,7 +2841,7 @@ snapshots: '@npmcli/query@5.0.0': dependencies: - postcss-selector-parser: 7.1.4 + postcss-selector-parser: 7.1.5 '@npmcli/redact@4.0.0': {} @@ -3080,14 +3088,14 @@ snapshots: '@tufjs/models@4.1.0': dependencies: '@tufjs/canonical-json': 2.0.0 - minimatch: 10.2.5 + minimatch: 10.2.6 '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 optional: true - '@types/node@26.1.2': + '@types/node@26.2.0': dependencies: undici-types: 8.3.0 @@ -3163,7 +3171,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.2.2: {} + ansi-regex@6.3.0: {} ansi-styles@4.3.0: dependencies: @@ -3213,7 +3221,7 @@ snapshots: dependencies: '@popperjs/core': 2.11.8 - brace-expansion@5.0.8: + brace-expansion@5.0.9: dependencies: balanced-match: 4.0.4 @@ -3242,12 +3250,12 @@ snapshots: '@npmcli/fs': 5.0.0 fs-minipass: 3.0.3 glob: 13.0.6 - lru-cache: 11.5.1 + lru-cache: 11.5.2 minipass: 7.1.3 minipass-collect: 2.0.1 minipass-flush: 1.0.7 minipass-pipeline: 1.2.4 - p-map: 7.0.4 + p-map: 7.0.6 ssri: 13.0.1 caniuse-api@4.0.0: @@ -3271,7 +3279,7 @@ snapshots: chokidar@5.0.0: dependencies: - readdirp: 5.0.0 + readdirp: 5.1.1 chownr@3.0.0: {} @@ -3307,51 +3315,50 @@ snapshots: content-type@2.0.0: {} - conventional-changelog-angular@9.2.1: + conventional-changelog-angular@9.4.0: dependencies: - '@conventional-changelog/template': 1.2.1 + '@conventional-changelog/template': 1.4.0 - conventional-changelog-conventionalcommits@10.2.1: + conventional-changelog-conventionalcommits@10.4.0: dependencies: - '@conventional-changelog/template': 1.2.1 + '@conventional-changelog/template': 1.4.0 conventional-changelog-preset-loader@6.0.1: {} - conventional-changelog-writer@9.2.0: + conventional-changelog-writer@9.2.1: dependencies: - '@conventional-changelog/template': 1.2.1 + '@conventional-changelog/template': 1.4.0 '@simple-libs/stream-utils': 2.0.0 argue-cli: 3.1.0 conventional-commits-filter: 6.0.1 semver: 7.8.5 - conventional-changelog@8.1.0(conventional-commits-filter@6.0.1): + conventional-changelog@8.1.3: dependencies: - '@conventional-changelog/git-client': 3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.0) + '@conventional-changelog/git-client': 3.1.2(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.2) '@simple-libs/hosted-git-info': 2.0.0 '@simple-libs/normalize-package-data': 1.0.0 argue-cli: 3.1.0 conventional-changelog-preset-loader: 6.0.1 - conventional-changelog-writer: 9.2.0 - conventional-commits-parser: 7.1.0 + conventional-changelog-writer: 9.2.1 + conventional-commits-filter: 6.0.1 + conventional-commits-parser: 7.1.2 fd-package-json: 2.0.0 - transitivePeerDependencies: - - conventional-commits-filter conventional-commits-filter@6.0.1: {} - conventional-commits-parser@7.1.0: + conventional-commits-parser@7.1.2: dependencies: '@simple-libs/stream-utils': 2.0.0 argue-cli: 3.1.0 conventional-recommended-bump@12.1.0: dependencies: - '@conventional-changelog/git-client': 3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.0) + '@conventional-changelog/git-client': 3.1.2(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.2) argue-cli: 3.1.0 conventional-changelog-preset-loader: 6.0.1 conventional-commits-filter: 6.0.1 - conventional-commits-parser: 7.1.0 + conventional-commits-parser: 7.1.2 cross-env@10.1.0: dependencies: @@ -3581,7 +3588,7 @@ snapshots: glob@13.0.6: dependencies: - minimatch: 10.2.5 + minimatch: 10.2.6 minipass: 7.1.3 path-scurry: 2.0.2 @@ -3602,7 +3609,7 @@ snapshots: hosted-git-info@9.0.3: dependencies: - lru-cache: 11.5.1 + lru-cache: 11.5.2 http-cache-semantics@4.2.0: {} @@ -3620,14 +3627,14 @@ snapshots: transitivePeerDependencies: - supports-color - iconv-lite@0.7.2: + iconv-lite@0.7.3: dependencies: safer-buffer: 2.1.2 optional: true ignore-walk@8.0.0: dependencies: - minimatch: 10.2.5 + minimatch: 10.2.6 immutable@5.1.9: {} @@ -3640,7 +3647,7 @@ snapshots: ini@6.0.0: {} - ip-address@10.4.0: {} + ip-address@10.5.0: {} is-binary-path@2.1.0: dependencies: @@ -3763,7 +3770,7 @@ snapshots: dependencies: p-locate: 4.1.0 - lru-cache@11.5.1: {} + lru-cache@11.5.2: {} make-fetch-happen@15.0.6: dependencies: @@ -3794,9 +3801,9 @@ snapshots: picomatch: 2.3.2 optional: true - minimatch@10.2.5: + minimatch@10.2.6: dependencies: - brace-expansion: 5.0.8 + brace-expansion: 5.0.9 minimist@1.2.8: {} @@ -3810,7 +3817,7 @@ snapshots: minipass-sized: 2.0.0 minizlib: 3.1.0 optionalDependencies: - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 minipass-flush@1.0.7: dependencies: @@ -3862,9 +3869,9 @@ snapshots: nopt: 9.0.0 proc-log: 6.1.0 semver: 7.8.5 - tar: 7.5.19 + tar: 7.5.22 tinyglobby: 0.2.17 - undici: 8.10.0 + undici: 7.29.0 which: 6.0.1 node-releases@2.0.51: {} @@ -3942,7 +3949,7 @@ snapshots: dependencies: p-limit: 2.3.0 - p-map@7.0.4: {} + p-map@7.0.6: {} p-try@2.2.0: {} @@ -3964,7 +3971,7 @@ snapshots: proc-log: 6.1.0 sigstore: 4.1.1 ssri: 13.0.1 - tar: 7.5.21 + tar: 7.5.22 transitivePeerDependencies: - supports-color @@ -3989,7 +3996,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.5.1 + lru-cache: 11.5.2 minipass: 7.1.3 picocolors@1.1.1: {} @@ -4192,6 +4199,11 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@7.1.5: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-svgo@8.0.3(postcss@8.5.26): dependencies: postcss: 8.5.26 @@ -4244,7 +4256,7 @@ snapshots: dependencies: picomatch: 2.3.2 - readdirp@5.0.0: {} + readdirp@5.1.1: {} remove-glob@1.2.1: dependencies: @@ -4329,7 +4341,7 @@ snapshots: socks@2.8.9: dependencies: - ip-address: 10.4.0 + ip-address: 10.5.0 smart-buffer: 4.2.0 sort-keys@6.0.0: @@ -4365,13 +4377,18 @@ snapshots: get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 + string-width@8.2.2: + dependencies: + get-east-asian-width: 1.6.0 + strip-ansi: 7.2.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 strip-ansi@7.2.0: dependencies: - ansi-regex: 6.2.2 + ansi-regex: 6.3.0 stylehacks@8.0.2(postcss@8.5.26): dependencies: @@ -4389,15 +4406,7 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - tar@7.5.19: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.3 - minizlib: 3.1.0 - yallist: 5.0.0 - - tar@7.5.21: + tar@7.5.22: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -4407,7 +4416,7 @@ snapshots: thenby@1.3.4: {} - tinyexec@1.2.4: {} + tinyexec@1.3.0: {} tinyglobby@0.2.17: dependencies: @@ -4459,7 +4468,7 @@ snapshots: undici-types@8.3.0: {} - undici@8.10.0: {} + undici@7.29.0: {} universal-user-agent@7.0.3: {} @@ -4483,7 +4492,9 @@ snapshots: validate-npm-package-name@7.0.2: {} - vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(sass@1.102.0)(yaml@2.9.0): + verkit@0.4.0: {} + + vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.1)(sass@1.102.0)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.5 @@ -4491,7 +4502,7 @@ snapshots: rolldown: 1.2.1 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.1.2 + '@types/node': 26.2.0 esbuild: 0.28.1 fsevents: 2.3.3 sass: 1.102.0 @@ -4565,12 +4576,12 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yargs@18.0.0: + yargs@18.1.0: dependencies: cliui: 9.0.1 escalade: 3.2.0 get-caller-file: 2.0.5 - string-width: 7.2.0 + string-width: 8.2.2 y18n: 5.0.8 yargs-parser: 22.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 164ee4dc..3ecdf16c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -20,5 +20,5 @@ minimumReleaseAgeExclude: - '@lerna-lite/*' overrides: - ip-address: ^10.4.0 - undici: ^8.10.0 \ No newline at end of file + ip-address: ^10.5.0 + undici: ^7.29.0 \ No newline at end of file