diff --git a/.vscode/settings.json b/.vscode/settings.json index a4e5b8f..c4bce44 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,8 @@ { + // Enable the ESlint flat config support + // (remove this if your ESLint extension above v3.0.5) + "eslint.experimental.useFlatConfig": true, + // Disable the default formatter, use eslint instead "prettier.enable": false, "editor.formatOnSave": false, diff --git a/package.json b/package.json index 4f26097..6c16ed4 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "bumpp": "^9.4.1", "eslint-plugin-format": "^0.1.1", "esno": "^4.7.0", + "jsdom": "^24.1.0", "lint-staged": "^15.2.7", "magic-string": "^0.30.10", "npm-run-all": "^4.1.5", diff --git a/packages/is/__test__/isArray.test.ts b/packages/is/__test__/isArray.test.ts index 03206d6..32791f8 100644 --- a/packages/is/__test__/isArray.test.ts +++ b/packages/is/__test__/isArray.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isArray } from '../index' +import { isArray } from '../src/isArray' describe('@xparcai-utils/is', () => { it('isArray', () => { diff --git a/packages/is/__test__/isBigInt.test.ts b/packages/is/__test__/isBigInt.test.ts index 7a518f1..fdf4e5b 100644 --- a/packages/is/__test__/isBigInt.test.ts +++ b/packages/is/__test__/isBigInt.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isBigInt } from '../index' +import { isBigInt } from '../src/isBigInt' describe('@xparcai-utils/is', () => { it('isBigInt', () => { diff --git a/packages/is/__test__/isBoolean.test.ts b/packages/is/__test__/isBoolean.test.ts index 3f3a98d..b21b800 100644 --- a/packages/is/__test__/isBoolean.test.ts +++ b/packages/is/__test__/isBoolean.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isBoolean } from '../index' +import { isBoolean } from '../src/isBoolean' describe('@xparcai-utils/is', () => { it('isBoolean', () => { diff --git a/packages/is/__test__/isDate.test.ts b/packages/is/__test__/isDate.test.ts index 03564d3..6462331 100644 --- a/packages/is/__test__/isDate.test.ts +++ b/packages/is/__test__/isDate.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isDate } from '../index' +import { isDate } from '../src/isDate' describe('@xparcai-utils/is', () => { it('isDate', () => { diff --git a/packages/is/__test__/isElement.test.ts b/packages/is/__test__/isElement.test.ts new file mode 100644 index 0000000..9bb38f5 --- /dev/null +++ b/packages/is/__test__/isElement.test.ts @@ -0,0 +1,16 @@ +/** + * @vitest-environment jsdom + */ + +import { describe, expect, it } from 'vitest' +import { isElement } from '../src/isElement' + +describe('@xparcai-utils/is', () => { + it('isElement', () => { + const div = document.createElement('div') + const span = document.createElement('span') + expect(isElement('abc')).toBe(false) + expect(isElement(div)).toBe(true) + expect(isElement(span)).toBe(true) + }) +}) diff --git a/packages/is/__test__/isEmail.test.ts b/packages/is/__test__/isEmail.test.ts new file mode 100644 index 0000000..1a50bbf --- /dev/null +++ b/packages/is/__test__/isEmail.test.ts @@ -0,0 +1,10 @@ +import { describe, expect, it } from 'vitest' +import { isEmail } from '../src/isEmail' + +describe('@xparcai-utils/is', () => { + it('isEmail', () => { + expect(isEmail('abc')).toBe(false) + expect(isEmail('10667379@qq.com')).toBe(true) + expect(isEmail('hi@vtrbo.cn')).toBe(true) + }) +}) diff --git a/packages/is/__test__/isEmptyArray.test.ts b/packages/is/__test__/isEmptyArray.test.ts new file mode 100644 index 0000000..ca5aa84 --- /dev/null +++ b/packages/is/__test__/isEmptyArray.test.ts @@ -0,0 +1,10 @@ +import { describe, expect, it } from 'vitest' +import { isEmptyArray } from '../src/isEmptyArray' + +describe('@xparcai-utils/is', () => { + it('isEmptyArray', () => { + expect(isEmptyArray(undefined)).toBe(false) + expect(isEmptyArray([])).toBe(true) + expect(isEmptyArray([1])).toBe(false) + }) +}) diff --git a/packages/is/__test__/isEmptyObject.test.ts b/packages/is/__test__/isEmptyObject.test.ts new file mode 100644 index 0000000..34178c6 --- /dev/null +++ b/packages/is/__test__/isEmptyObject.test.ts @@ -0,0 +1,9 @@ +import { describe, expect, it } from 'vitest' +import { isEmptyObject } from '../src/isEmptyObject' + +describe('@xparcai-utils/is', () => { + it('isEmptyObject', () => { + expect(isEmptyObject(undefined)).toBe(false) + expect(isEmptyObject({})).toBe(true) + }) +}) diff --git a/packages/is/__test__/isError.test.ts b/packages/is/__test__/isError.test.ts new file mode 100644 index 0000000..477577e --- /dev/null +++ b/packages/is/__test__/isError.test.ts @@ -0,0 +1,8 @@ +import { describe, expect, it } from 'vitest' +import { isError } from '../src/isError' + +describe('@xparcai-utils/is', () => { + it('isError', () => { + expect(isError(new Error())).toBe(true) + }) +}) diff --git a/packages/is/__test__/isFalse.test.ts b/packages/is/__test__/isFalse.test.ts index b44de6c..7610d4f 100644 --- a/packages/is/__test__/isFalse.test.ts +++ b/packages/is/__test__/isFalse.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isFalse } from '../index' +import { isFalse } from '../src/isFalse' describe('@xparcai-utils/is', () => { it('isFalse', () => { diff --git a/packages/is/__test__/isFunction.test.ts b/packages/is/__test__/isFunction.test.ts index 8e6cf0f..5c14e37 100644 --- a/packages/is/__test__/isFunction.test.ts +++ b/packages/is/__test__/isFunction.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import { isFunction } from '../index' +import { isFunction } from '../src/isFunction' describe('@xparcai-utils/is', () => { it('isFunction', () => { diff --git a/packages/is/__test__/isHttp.test.ts b/packages/is/__test__/isHttp.test.ts new file mode 100644 index 0000000..e721b38 --- /dev/null +++ b/packages/is/__test__/isHttp.test.ts @@ -0,0 +1,20 @@ +import { describe, expect, it } from 'vitest' +import { isHttp } from '../src/isHttp' + +describe('@xparcai-utils/is', () => { + it('isHttp', () => { + expect(isHttp('http://xparcai.com')).toBe(true) + expect(isHttp('https://xparcai.com', 's')).toBe(true) + expect(isHttp('http://xparcai.com', '||')).toBe(true) + expect(isHttp('https://xparcai.com', '||')).toBe(true) + + // 更改默认值 + isHttp.setCondition('s') + expect(isHttp('http://xparcai.com')).toBe(false) + expect(isHttp('https://xparcai.com')).toBe(true) + + // 设置默认值调用 + expect(isHttp.setCondition('s')('http://xparcai.com')).toBe(false) + expect(isHttp.setCondition('s')('https://xparcai.com')).toBe(true) + }) +}) diff --git a/packages/is/__test__/isIDCard.test.ts b/packages/is/__test__/isIDCard.test.ts new file mode 100644 index 0000000..3b53cf7 --- /dev/null +++ b/packages/is/__test__/isIDCard.test.ts @@ -0,0 +1,10 @@ +import { describe, expect, it } from 'vitest' +import { isIDCard } from '../src/isIDCard' + +describe('@xparcai-utils/is', () => { + it('isIDCard', () => { + expect(isIDCard('410224950512034')).toBe(true) + expect(isIDCard('4102249505120')).toBe(false) + expect(isIDCard('410224199803120318')).toBe(false) + }) +}) diff --git a/packages/is/__test__/isLowerCase.test.ts b/packages/is/__test__/isLowerCase.test.ts new file mode 100644 index 0000000..d303c06 --- /dev/null +++ b/packages/is/__test__/isLowerCase.test.ts @@ -0,0 +1,9 @@ +import { describe, expect, it } from 'vitest' +import { isLowerCase } from '../src/isLowerCase' + +describe('@xparcai-utils/is', () => { + it('isLowerCase', () => { + expect(isLowerCase('http://xparcai.com')).toBe(false) + expect(isLowerCase('xparcai')).toBe(true) + }) +}) diff --git a/packages/is/__test__/isMap.test.ts b/packages/is/__test__/isMap.test.ts index dd76913..f1ce70f 100644 --- a/packages/is/__test__/isMap.test.ts +++ b/packages/is/__test__/isMap.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isMap } from '../index' +import { isMap } from '../src/isMap' describe('@xparcai-utils/is', () => { it('isMap', () => { diff --git a/packages/is/__test__/isMobile.test.ts b/packages/is/__test__/isMobile.test.ts new file mode 100644 index 0000000..8d19ca6 --- /dev/null +++ b/packages/is/__test__/isMobile.test.ts @@ -0,0 +1,9 @@ +import { describe, expect, it } from 'vitest' +import { isMobile } from '../src/isMobile' + +describe('@xparcai-utils/is', () => { + it('isMobile', () => { + expect(isMobile('12345678910')).toBe(false) + expect(isMobile('13523456789')).toBe(true) + }) +}) diff --git a/packages/is/__test__/isNaN.test.ts b/packages/is/__test__/isNaN.test.ts index 063db9c..a1d5d15 100644 --- a/packages/is/__test__/isNaN.test.ts +++ b/packages/is/__test__/isNaN.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isNaN } from '../index' +import { isNaN } from '../src/isNaN' describe('@xparcai-utils/is', () => { it('isNaN', () => { diff --git a/packages/is/__test__/isNull.test.ts b/packages/is/__test__/isNull.test.ts index 1365b44..49a9673 100644 --- a/packages/is/__test__/isNull.test.ts +++ b/packages/is/__test__/isNull.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isNull } from '../index' +import { isNull } from '../src/isNull' describe('@xparcai-utils/is', () => { it('isNull', () => { diff --git a/packages/is/__test__/isNumber.test.ts b/packages/is/__test__/isNumber.test.ts index f7de11a..aa0a14e 100644 --- a/packages/is/__test__/isNumber.test.ts +++ b/packages/is/__test__/isNumber.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isNumber } from '../index' +import { isNumber } from '../src/isNumber' describe('@xparcai-utils/is', () => { it('isNumber', () => { diff --git a/packages/is/__test__/isNumberString.test.ts b/packages/is/__test__/isNumberString.test.ts new file mode 100644 index 0000000..609f7ff --- /dev/null +++ b/packages/is/__test__/isNumberString.test.ts @@ -0,0 +1,14 @@ +import { describe, expect, it } from 'vitest' +import { isNumberString } from '../src/isNumberString' + +describe('@xparcai-utils/is', () => { + it('isNumberString', () => { + expect(isNumberString('abc')).toBe(false) + expect(isNumberString('0.95')).toBe(true) + expect(isNumberString('255')).toBe(true) + expect(isNumberString('255.323928392')).toBe(true) + expect(isNumberString('0000')).toBe(false) + expect(isNumberString('0.00')).toBe(true) + expect(isNumberString('00.00')).toBe(false) + }) +}) diff --git a/packages/is/__test__/isObject.test.ts b/packages/is/__test__/isObject.test.ts index 3998bf1..f59a31b 100644 --- a/packages/is/__test__/isObject.test.ts +++ b/packages/is/__test__/isObject.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isObject } from '../index' +import { isObject } from '../src/isObject' describe('@xparcai-utils/is', () => { it('isObject', () => { diff --git a/packages/is/__test__/isPromise.test.ts b/packages/is/__test__/isPromise.test.ts index 64609fa..d3768dd 100644 --- a/packages/is/__test__/isPromise.test.ts +++ b/packages/is/__test__/isPromise.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isPromise } from '../index' +import { isPromise } from '../src/isPromise' describe('@xparcai-utils/is', () => { it('isPromise', () => { diff --git a/packages/is/__test__/isRegExp.test.ts b/packages/is/__test__/isRegExp.test.ts index 9fb97d6..226bd0c 100644 --- a/packages/is/__test__/isRegExp.test.ts +++ b/packages/is/__test__/isRegExp.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isRegExp } from '../index' +import { isRegExp } from '../src/isRegExp' describe('@xparcai-utils/is', () => { it('isRegExp', () => { diff --git a/packages/is/__test__/isSet.test.ts b/packages/is/__test__/isSet.test.ts index dff7cfa..8a69cc5 100644 --- a/packages/is/__test__/isSet.test.ts +++ b/packages/is/__test__/isSet.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isSet } from '../index' +import { isSet } from '../src/isSet' describe('@xparcai-utils/is', () => { it('isSet', () => { diff --git a/packages/is/__test__/isString.test.ts b/packages/is/__test__/isString.test.ts index e2bdb2d..b5fe672 100644 --- a/packages/is/__test__/isString.test.ts +++ b/packages/is/__test__/isString.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isString } from '../index' +import { isString } from '../src/isString' describe('@xparcai-utils/is', () => { it('isString', () => { diff --git a/packages/is/__test__/isSymbol.test.ts b/packages/is/__test__/isSymbol.test.ts index 420c2ee..f274afb 100644 --- a/packages/is/__test__/isSymbol.test.ts +++ b/packages/is/__test__/isSymbol.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isSymbol } from '../index' +import { isSymbol } from '../src/isSymbol' describe('@xparcai-utils/is', () => { it('isSymbol', () => { diff --git a/packages/is/__test__/isTrue.test.ts b/packages/is/__test__/isTrue.test.ts index 135c527..4bb8631 100644 --- a/packages/is/__test__/isTrue.test.ts +++ b/packages/is/__test__/isTrue.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isTrue } from '../index' +import { isTrue } from '../src/isTrue' describe('@xparcai-utils/is', () => { it('isTrue', () => { diff --git a/packages/is/__test__/isType.test.ts b/packages/is/__test__/isType.test.ts index 65bfd73..2806f55 100644 --- a/packages/is/__test__/isType.test.ts +++ b/packages/is/__test__/isType.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isType } from '../index' +import { isType } from '../src/isType' describe('@xparcai-utils/is', () => { it('isType', () => { diff --git a/packages/is/__test__/isUndefined.test.ts b/packages/is/__test__/isUndefined.test.ts index cba9936..7fe8fe0 100644 --- a/packages/is/__test__/isUndefined.test.ts +++ b/packages/is/__test__/isUndefined.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { isUndefined } from '../index' +import { isUndefined } from '../src/isUndefined' describe('@xparcai-utils/is', () => { it('isUndefined', () => { diff --git a/packages/is/__test__/isUpperCase.test.ts b/packages/is/__test__/isUpperCase.test.ts new file mode 100644 index 0000000..586f031 --- /dev/null +++ b/packages/is/__test__/isUpperCase.test.ts @@ -0,0 +1,9 @@ +import { describe, expect, it } from 'vitest' +import { isUpperCase } from '../src/isUpperCase' + +describe('@xparcai-utils/is', () => { + it('isUpperCase', () => { + expect(isUpperCase('http://xparcai.com')).toBe(false) + expect(isUpperCase('XPARCAI')).toBe(true) + }) +}) diff --git a/packages/is/index.ts b/packages/is/index.ts index e494f7b..0157a92 100644 --- a/packages/is/index.ts +++ b/packages/is/index.ts @@ -17,3 +17,13 @@ export * from './src/isBoolean' export * from './src/isSet' export * from './src/isArray' export * from './src/isObject' +export * from './src/isMobile' +export * from './src/isEmail' +export * from './src/isElement' +export * from './src/isHttp' +export * from './src/isLowerCase' +export * from './src/isEmptyObject' +export * from './src/isEmptyArray' +export * from './src/isError' +export * from './src/isIDCard' +export * from './src/isNumberString' diff --git a/packages/is/src/isElement.ts b/packages/is/src/isElement.ts new file mode 100644 index 0000000..9b2f315 --- /dev/null +++ b/packages/is/src/isElement.ts @@ -0,0 +1,12 @@ +import { isUndefined } from './isUndefined' + +/** + * 某个数据是否是element类型 + * @param data 某个数据 + * @returns 是否是element类型 + */ +export function isElement(data: unknown): data is Element { + if (isUndefined(data)) + return false + return data instanceof Element +} diff --git a/packages/is/src/isEmail.ts b/packages/is/src/isEmail.ts new file mode 100644 index 0000000..e4c5fb0 --- /dev/null +++ b/packages/is/src/isEmail.ts @@ -0,0 +1,10 @@ +/** + * 某个数据是否为邮箱 + * @param email 某个数据 + * @returns 是否为邮箱 + */ +export function isEmail(email: string) { + const reg + = /^(?:[^<>()[\]\\.,;:\s@"]+(?:\.[^<>()[\]\\.,;:\s@"]+)*|".+")@(?:\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]|(?:[a-z\-0-9]+\.)+[a-z]{2,})$/i + return reg.test(email) +} diff --git a/packages/is/src/isEmptyArray.ts b/packages/is/src/isEmptyArray.ts new file mode 100644 index 0000000..88d5600 --- /dev/null +++ b/packages/is/src/isEmptyArray.ts @@ -0,0 +1,10 @@ +import { isArray } from './isArray' + +/** + * 某个数组是否为空数组 + * @param arr 某个数组 + * @returns 是否为空数组 + */ +export function isEmptyArray(arr: unknown): boolean { + return isArray(arr) && !arr.length +} diff --git a/packages/is/src/isEmptyObject.ts b/packages/is/src/isEmptyObject.ts new file mode 100644 index 0000000..4f5433a --- /dev/null +++ b/packages/is/src/isEmptyObject.ts @@ -0,0 +1,10 @@ +import { isObject } from './isObject' + +/** + * 某个对象是否为空对象 + * @param object 某个对象 + * @returns 是否为空对象 + */ +export function isEmptyObject(obj: unknown): boolean { + return isObject(obj) && Reflect.ownKeys(obj as object).length === 0 +} diff --git a/packages/is/src/isError.ts b/packages/is/src/isError.ts new file mode 100644 index 0000000..ef0f31a --- /dev/null +++ b/packages/is/src/isError.ts @@ -0,0 +1,10 @@ +import { isType } from './isType' + +/** + * 某个数据是否为Error类型 + * @param data 某个数据 + * @returns 是否为Error类型 + */ +export function isError(data: unknown): boolean { + return isType(data, 'Error') +} diff --git a/packages/is/src/isHttp.ts b/packages/is/src/isHttp.ts new file mode 100644 index 0000000..9053025 --- /dev/null +++ b/packages/is/src/isHttp.ts @@ -0,0 +1,27 @@ +type Condition = '' | 's' | '||' + +let _condition: Condition = '' + +/** + * 某个地址是否是http(s) + * @param url 某个地址 + * @param condition 条件, 默认''; '': 仅http; 's': 仅https; '||': http或https + * @returns 是否是http(s) + */ +export function isHttp(url: string, condition: Condition = _condition): boolean { + const conditionMap: Record boolean> = { + '': () => url.includes('http://'), + 's': () => url.includes('https://'), + '||': () => url.includes('http://') || url.includes('https://'), + } + return conditionMap[condition]() +} + +/** + * 设置isHttp函数的默认条件 + * @param condition 条件, 默认''; + */ +isHttp.setCondition = function (condition: Condition = _condition) { + _condition = condition + return isHttp +} diff --git a/packages/is/src/isIDCard.ts b/packages/is/src/isIDCard.ts new file mode 100644 index 0000000..2b8fea4 --- /dev/null +++ b/packages/is/src/isIDCard.ts @@ -0,0 +1,53 @@ +/** + * 身份证15位编码规则:dddddd yymmdd xx p + * dddddd:6位地区编码 + * yymmdd: 出生两位年月日 + * xx: 顺序编码,系统产生,无法确定 + * p: 性别,奇数为男,偶数为女 + * + * 身份证18位编码规则:dddddd yyyymmdd xxx y + * dddddd:6位地区编码 + * yyyymmdd: 出生年月日 + * xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女 + * y: 校验码,通过前17位计算 + * + * 前17位加权因子wi: [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ] 验证位 + * 余数Y: [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ] 10为X代替 + * 校验位计算公式:Y_P = mod( ∑(Ai × Wi), 11 ) i为身份证号码1...17 位; Y_P为校验码Y所在校验码数组位置 + */ +export function isIDCard(idCard: string): boolean { + const reg = /^[1-9]\d{7}(?:0\d|1[0-2])(?:[0|12]\d|3[01])\d{3}$|^[1-9]\d{5}[1-9]\d{3}(?:0\d|1[0-2])(?:[0|12]\d|3[01])(?:\d{4}|\d{3}X)$/i + + if (!reg.test(idCard)) { + return false + } + + if (idCard.length === 15) { + return true + } + + if (idCard.length !== 18) { + return false + } + + // 前17位加权因子 + const wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] + // 除11后可能产生的余数 + const y = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2] + + let wiSum = 0 + for (let i = 0; i < 17; i++) { + wiSum += +idCard.substring(i, i + 1) * wi[i] + } + + const mod = wiSum % 11 + const last = idCard.substring(17) + + // 处理X + if (mod === 2 && !['X', 'x'].includes(last)) { + return false + } + else { + return +last === y[mod] + } +} diff --git a/packages/is/src/isLowerCase.ts b/packages/is/src/isLowerCase.ts new file mode 100644 index 0000000..42bd598 --- /dev/null +++ b/packages/is/src/isLowerCase.ts @@ -0,0 +1,9 @@ +/** + * 某个字符串是否为纯小写 + * @param str 某个字符串 + * @returns 是否为纯小写 + */ +export function isLowerCase(str: string): boolean { + const reg = /^[a-z]+$/ + return reg.test(str) +} diff --git a/packages/is/src/isMobile.ts b/packages/is/src/isMobile.ts new file mode 100644 index 0000000..319a58d --- /dev/null +++ b/packages/is/src/isMobile.ts @@ -0,0 +1,9 @@ +/** + * 某个数据是否为手机号 + * @param data 某个数据 + * @returns 是否为手机号 + */ +export function isMobile(data: string) { + const reg = /^1[3-9]\d{9}$/ + return reg.test(data) +} diff --git a/packages/is/src/isNumberString.ts b/packages/is/src/isNumberString.ts new file mode 100644 index 0000000..85453ff --- /dev/null +++ b/packages/is/src/isNumberString.ts @@ -0,0 +1,8 @@ +/** + * 某个字符串是否为数字字符串 + * @param str 某个字符串 + * @returns 是否为数字字符串 + */ +export function isNumberString(str: string): boolean { + return /^[+-]?(?:0|[1-9]\d*)(?:\.\d+)?$/.test(str) +} diff --git a/packages/is/src/isType.ts b/packages/is/src/isType.ts index b82cda8..098ecb2 100644 --- a/packages/is/src/isType.ts +++ b/packages/is/src/isType.ts @@ -1,32 +1,11 @@ import { toRawType } from '@xparcai-utils/tool' -type Types = - | 'Number' - | 'String' - | 'Boolean' - | 'Object' - | 'Function' - | 'Undefined' - | 'Array' - | 'Null' - | 'Date' - | 'BigInt' - | 'Symbol' - | 'WeakMap' - | 'Map' - | 'Set' - | 'RegExp' - | 'JSON' - | 'Error' - | 'Math' - | 'Argument' - /** * 某个数据是否符合某个类型 * @param data 某个数据 * @param type 某个类型 * @returns 是否符合某个类型 */ -export function isType(data: unknown, type: Types): boolean { +export function isType(data: unknown, type: string): boolean { return toRawType(data) === type } diff --git a/packages/is/src/isUpperCase.ts b/packages/is/src/isUpperCase.ts new file mode 100644 index 0000000..fab0a16 --- /dev/null +++ b/packages/is/src/isUpperCase.ts @@ -0,0 +1,9 @@ +/** + * 某个字符串是否为纯大写 + * @param str 某个字符串 + * @returns 是否为纯大写 + */ +export function isUpperCase(str: string): boolean { + const reg = /^[A-Z]+$/ + return reg.test(str) +} diff --git a/packages/object/__test__/deepCopy.test.ts b/packages/object/__test__/deepCopy.test.ts index 1aded83..a89fd12 100644 --- a/packages/object/__test__/deepCopy.test.ts +++ b/packages/object/__test__/deepCopy.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { deepCopy } from '..' +import { deepCopy } from '../src/deepCopy' describe('@xparcai-utils/object', () => { it('deepCopy: 复制基本类型', () => { diff --git a/packages/string/__test__/toSlash.test.ts b/packages/string/__test__/toSlash.test.ts index 2951142..0b11c52 100644 --- a/packages/string/__test__/toSlash.test.ts +++ b/packages/string/__test__/toSlash.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { toSlash } from '..' +import { toSlash } from '../src/toSlash' describe('@xparcai-utils/string', () => { it('toSlash', () => { diff --git a/packages/tool/__test__/toRawType.test.ts b/packages/tool/__test__/toRawType.test.ts index 23a3291..6ec7c71 100644 --- a/packages/tool/__test__/toRawType.test.ts +++ b/packages/tool/__test__/toRawType.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { toRawType } from '..' +import { toRawType } from '../src/toRawType' describe('@xparcai-utils/tool', () => { it('toRawType', () => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73bd6bf..0769d03 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: devDependencies: '@antfu/eslint-config': specifier: ^2.21.1 - version: 2.21.1(@vue/compiler-sfc@3.4.30)(eslint-plugin-format@0.1.2)(eslint@8.57.0)(typescript@5.5.2)(vitest@1.6.0) + version: 2.21.1(@vue/compiler-sfc@3.4.30)(eslint-plugin-format@0.1.2(eslint@8.56.0))(eslint@8.56.0)(typescript@5.5.2)(vitest@1.6.0(@types/node@20.14.8)(jsdom@24.1.0)(terser@5.19.4)) '@babel/preset-env': specifier: ^7.24.7 version: 7.24.7(@babel/core@7.24.7) @@ -43,10 +43,13 @@ importers: version: 9.4.1 eslint-plugin-format: specifier: ^0.1.1 - version: 0.1.2(eslint@8.57.0) + version: 0.1.2(eslint@8.56.0) esno: specifier: ^4.7.0 version: 4.7.0 + jsdom: + specifier: ^24.1.0 + version: 24.1.0 lint-staged: specifier: ^15.2.7 version: 15.2.7(typescript@5.5.2) @@ -88,16 +91,16 @@ importers: version: 5.5.2 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.8) + version: 1.6.0(@types/node@20.14.8)(jsdom@24.1.0)(terser@5.19.4) docs: devDependencies: vite: specifier: ^5.3.1 - version: 5.3.1(@types/node@20.14.8) + version: 5.3.1(@types/node@20.14.8)(terser@5.19.4) vitepress: specifier: ^1.2.3 - version: 1.2.3(@algolia/client-search@4.23.3)(@types/node@20.14.8)(search-insights@2.14.0)(typescript@5.5.2) + version: 1.2.3(@algolia/client-search@4.23.3)(@types/node@20.14.8)(postcss@8.4.38)(search-insights@2.14.0)(terser@5.19.4)(typescript@5.5.2) vue: specifier: ^3.4.29 version: 3.4.30(typescript@5.5.2) @@ -1049,10 +1052,6 @@ packages: resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -1535,6 +1534,8 @@ packages: acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} @@ -1550,6 +1551,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -1613,6 +1618,9 @@ packages: async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -1800,6 +1808,10 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} @@ -1854,9 +1866,17 @@ packages: engines: {node: '>=4'} hasBin: true + cssstyle@4.0.1: + resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + engines: {node: '>=18'} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} @@ -1880,6 +1900,14 @@ packages: debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} deep-eql@4.1.4: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} @@ -1907,6 +1935,10 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} @@ -2206,11 +2238,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - esno@4.7.0: resolution: {integrity: sha512-81owrjxIxOwqcABt20U09Wn8lpBo9K6ttqbGvQcB3VYNLJyaV1fvKkDtpZd3Rj5BX3WXiGiJCjUevKQGNICzJg==} hasBin: true @@ -2336,6 +2363,10 @@ packages: resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -2350,6 +2381,7 @@ packages: fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -2518,6 +2550,14 @@ packages: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + http-proxy@1.18.1: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} @@ -2527,6 +2567,10 @@ packages: engines: {node: '>=12'} hasBin: true + https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + engines: {node: '>= 14'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -2665,6 +2709,9 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} @@ -2742,6 +2789,15 @@ packages: resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} engines: {node: '>=12.0.0'} + jsdom@24.1.0: + resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -2899,6 +2955,14 @@ packages: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -3012,6 +3076,9 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nwsapi@2.2.10: + resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==} + nypm@0.3.8: resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} engines: {node: ^14.16.0 || >=16.10.0} @@ -3124,6 +3191,9 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3251,14 +3321,24 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -3388,6 +3468,12 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -3408,6 +3494,10 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + scslre@0.3.0: resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} engines: {node: ^14.0.0 || >=16.0.0} @@ -3640,6 +3730,9 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.6.2: resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} engines: {node: '>=12.20'} @@ -3694,6 +3787,14 @@ packages: resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} + ts-api-utils@1.3.0: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} @@ -3798,6 +3899,10 @@ packages: unist-util-stringify-position@2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -3814,6 +3919,9 @@ packages: url-join@4.0.1: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -3915,10 +4023,30 @@ packages: typescript: optional: true + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} + which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -3967,10 +4095,29 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -4121,45 +4268,46 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@2.21.1(@vue/compiler-sfc@3.4.30)(eslint-plugin-format@0.1.2)(eslint@8.57.0)(typescript@5.5.2)(vitest@1.6.0)': + '@antfu/eslint-config@2.21.1(@vue/compiler-sfc@3.4.30)(eslint-plugin-format@0.1.2(eslint@8.56.0))(eslint@8.56.0)(typescript@5.5.2)(vitest@1.6.0(@types/node@20.14.8)(jsdom@24.1.0)(terser@5.19.4))': dependencies: '@antfu/install-pkg': 0.3.3 '@clack/prompts': 0.7.0 - '@stylistic/eslint-plugin': 2.2.2(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 + '@stylistic/eslint-plugin': 2.2.2(eslint@8.56.0)(typescript@5.5.2) + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2) + '@typescript-eslint/parser': 7.14.1(eslint@8.56.0)(typescript@5.5.2) + eslint: 8.56.0 eslint-config-flat-gitignore: 0.1.5 eslint-flat-config-utils: 0.2.5 - eslint-merge-processors: 0.1.0(eslint@8.57.0) - eslint-plugin-antfu: 2.3.3(eslint@8.57.0) - eslint-plugin-command: 0.2.3(eslint@8.57.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-format: 0.1.2(eslint@8.57.0) - eslint-plugin-import-x: 0.5.2(eslint@8.57.0)(typescript@5.5.2) - eslint-plugin-jsdoc: 48.4.0(eslint@8.57.0) - eslint-plugin-jsonc: 2.16.0(eslint@8.57.0) - eslint-plugin-markdown: 5.0.0(eslint@8.57.0) - eslint-plugin-n: 17.9.0(eslint@8.57.0) + eslint-merge-processors: 0.1.0(eslint@8.56.0) + eslint-plugin-antfu: 2.3.3(eslint@8.56.0) + eslint-plugin-command: 0.2.3(eslint@8.56.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) + eslint-plugin-import-x: 0.5.2(eslint@8.56.0)(typescript@5.5.2) + eslint-plugin-jsdoc: 48.4.0(eslint@8.56.0) + eslint-plugin-jsonc: 2.16.0(eslint@8.56.0) + eslint-plugin-markdown: 5.0.0(eslint@8.56.0) + eslint-plugin-n: 17.9.0(eslint@8.56.0) eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-perfectionist: 2.11.0(eslint@8.57.0)(typescript@5.5.2)(vue-eslint-parser@9.4.3) - eslint-plugin-regexp: 2.6.0(eslint@8.57.0) - eslint-plugin-toml: 0.11.0(eslint@8.57.0) - eslint-plugin-unicorn: 53.0.0(eslint@8.57.0) - eslint-plugin-unused-imports: 3.2.0(@typescript-eslint/eslint-plugin@7.14.1)(eslint@8.57.0) - eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.14.1)(eslint@8.57.0)(typescript@5.5.2)(vitest@1.6.0) - eslint-plugin-vue: 9.26.0(eslint@8.57.0) - eslint-plugin-yml: 1.14.0(eslint@8.57.0) - eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.30)(eslint@8.57.0) + eslint-plugin-perfectionist: 2.11.0(eslint@8.56.0)(typescript@5.5.2)(vue-eslint-parser@9.4.3(eslint@8.56.0)) + eslint-plugin-regexp: 2.6.0(eslint@8.56.0) + eslint-plugin-toml: 0.11.0(eslint@8.56.0) + eslint-plugin-unicorn: 53.0.0(eslint@8.56.0) + eslint-plugin-unused-imports: 3.2.0(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2)(vitest@1.6.0(@types/node@20.14.8)(jsdom@24.1.0)(terser@5.19.4)) + eslint-plugin-vue: 9.26.0(eslint@8.56.0) + eslint-plugin-yml: 1.14.0(eslint@8.56.0) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.30)(eslint@8.56.0) globals: 15.6.0 jsonc-eslint-parser: 2.4.0 local-pkg: 0.5.0 parse-gitignore: 2.0.0 picocolors: 1.0.1 toml-eslint-parser: 0.9.3 - vue-eslint-parser: 9.4.3(eslint@8.57.0) + vue-eslint-parser: 9.4.3(eslint@8.56.0) yaml-eslint-parser: 1.2.3 yargs: 17.7.2 + optionalDependencies: + eslint-plugin-format: 0.1.2(eslint@8.56.0) transitivePeerDependencies: - '@vue/compiler-sfc' - supports-color @@ -4199,6 +4347,8 @@ snapshots: gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 + transitivePeerDependencies: + - supports-color '@babel/generator@7.24.7': dependencies: @@ -4215,6 +4365,8 @@ snapshots: dependencies: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-compilation-targets@7.24.7': dependencies: @@ -4236,6 +4388,8 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 + transitivePeerDependencies: + - supports-color '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4252,6 +4406,8 @@ snapshots: debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.4 + transitivePeerDependencies: + - supports-color '@babel/helper-environment-visitor@7.24.7': dependencies: @@ -4270,11 +4426,15 @@ snapshots: dependencies: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-module-imports@7.24.7': dependencies: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4284,6 +4444,8 @@ snapshots: '@babel/helper-simple-access': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-optimise-call-expression@7.24.7': dependencies: @@ -4297,6 +4459,8 @@ snapshots: '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-wrap-function': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4304,16 +4468,22 @@ snapshots: '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.7 '@babel/helper-optimise-call-expression': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-simple-access@7.24.7': dependencies: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: @@ -4331,6 +4501,8 @@ snapshots: '@babel/template': 7.24.7 '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helpers@7.24.7': dependencies: @@ -4365,6 +4537,8 @@ snapshots: '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4479,6 +4653,8 @@ snapshots: '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4486,6 +4662,8 @@ snapshots: '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4502,6 +4680,8 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4509,6 +4689,8 @@ snapshots: '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4521,6 +4703,8 @@ snapshots: '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4555,6 +4739,8 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4567,6 +4753,8 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4602,6 +4790,8 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4609,6 +4799,8 @@ snapshots: '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4617,12 +4809,16 @@ snapshots: '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4660,6 +4856,8 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4673,6 +4871,8 @@ snapshots: '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4684,6 +4884,8 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4692,6 +4894,8 @@ snapshots: '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4719,6 +4923,8 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7)': dependencies: @@ -4842,6 +5048,8 @@ snapshots: babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7) core-js-compat: 3.32.2 semver: 6.3.1 + transitivePeerDependencies: + - supports-color '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7)': dependencies: @@ -4874,6 +5082,8 @@ snapshots: '@babel/types': 7.24.7 debug: 4.3.4 globals: 11.12.0 + transitivePeerDependencies: + - supports-color '@babel/types@7.24.7': dependencies: @@ -4911,6 +5121,7 @@ snapshots: '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) '@docsearch/css': 3.6.0 algoliasearch: 4.23.3 + optionalDependencies: search-insights: 2.14.0 transitivePeerDependencies: - '@algolia/client-search' @@ -5004,11 +5215,6 @@ snapshots: eslint: 8.56.0 eslint-visitor-keys: 3.4.1 - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.1 - '@eslint-community/regexpp@4.10.1': {} '@eslint/eslintrc@2.1.4': @@ -5022,6 +5228,8 @@ snapshots: js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color '@eslint/eslintrc@3.1.0': dependencies: @@ -5034,16 +5242,18 @@ snapshots: js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color '@eslint/js@8.56.0': {} - '@eslint/js@8.57.0': {} - '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4 minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color '@humanwhocodes/module-importer@1.0.1': {} @@ -5113,7 +5323,10 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + optionalDependencies: rollup: 4.18.0 + transitivePeerDependencies: + - supports-color '@rollup/plugin-commonjs@26.0.1(rollup@4.18.0)': dependencies: @@ -5123,17 +5336,22 @@ snapshots: glob: 10.4.2 is-reference: 1.2.1 magic-string: 0.30.10 + optionalDependencies: rollup: 4.18.0 '@rollup/plugin-eslint@9.0.5(rollup@4.18.0)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.18.0) eslint: 8.56.0 + optionalDependencies: rollup: 4.18.0 + transitivePeerDependencies: + - supports-color '@rollup/plugin-json@6.1.0(rollup@4.18.0)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + optionalDependencies: rollup: 4.18.0 '@rollup/plugin-node-resolve@15.2.3(rollup@4.18.0)': @@ -5144,14 +5362,16 @@ snapshots: is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.4 + optionalDependencies: rollup: 4.18.0 '@rollup/plugin-terser@0.4.4(rollup@4.18.0)': dependencies: - rollup: 4.18.0 serialize-javascript: 6.0.1 smob: 1.5.0 terser: 5.19.4 + optionalDependencies: + rollup: 4.18.0 '@rollup/pluginutils@4.2.1': dependencies: @@ -5163,6 +5383,7 @@ snapshots: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 + optionalDependencies: rollup: 4.18.0 '@rollup/rollup-android-arm-eabi@4.18.0': @@ -5221,48 +5442,51 @@ snapshots: '@sinclair/typebox@0.27.8': {} - '@stylistic/eslint-plugin-js@2.2.2(eslint@8.57.0)': + '@stylistic/eslint-plugin-js@2.2.2(eslint@8.56.0)': dependencies: '@types/eslint': 8.56.10 acorn: 8.12.0 - eslint: 8.57.0 + eslint: 8.56.0 eslint-visitor-keys: 4.0.0 espree: 10.1.0 - '@stylistic/eslint-plugin-jsx@2.2.2(eslint@8.57.0)': + '@stylistic/eslint-plugin-jsx@2.2.2(eslint@8.56.0)': dependencies: - '@stylistic/eslint-plugin-js': 2.2.2(eslint@8.57.0) + '@stylistic/eslint-plugin-js': 2.2.2(eslint@8.56.0) '@types/eslint': 8.56.10 - eslint: 8.57.0 + eslint: 8.56.0 estraverse: 5.3.0 picomatch: 4.0.2 - '@stylistic/eslint-plugin-plus@2.2.2(eslint@8.57.0)(typescript@5.5.2)': + '@stylistic/eslint-plugin-plus@2.2.2(eslint@8.56.0)(typescript@5.5.2)': dependencies: '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 + '@typescript-eslint/utils': 7.14.1(eslint@8.56.0)(typescript@5.5.2) + eslint: 8.56.0 transitivePeerDependencies: + - supports-color - typescript - '@stylistic/eslint-plugin-ts@2.2.2(eslint@8.57.0)(typescript@5.5.2)': + '@stylistic/eslint-plugin-ts@2.2.2(eslint@8.56.0)(typescript@5.5.2)': dependencies: - '@stylistic/eslint-plugin-js': 2.2.2(eslint@8.57.0) + '@stylistic/eslint-plugin-js': 2.2.2(eslint@8.56.0) '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 + '@typescript-eslint/utils': 7.14.1(eslint@8.56.0)(typescript@5.5.2) + eslint: 8.56.0 transitivePeerDependencies: + - supports-color - typescript - '@stylistic/eslint-plugin@2.2.2(eslint@8.57.0)(typescript@5.5.2)': + '@stylistic/eslint-plugin@2.2.2(eslint@8.56.0)(typescript@5.5.2)': dependencies: - '@stylistic/eslint-plugin-js': 2.2.2(eslint@8.57.0) - '@stylistic/eslint-plugin-jsx': 2.2.2(eslint@8.57.0) - '@stylistic/eslint-plugin-plus': 2.2.2(eslint@8.57.0)(typescript@5.5.2) - '@stylistic/eslint-plugin-ts': 2.2.2(eslint@8.57.0)(typescript@5.5.2) + '@stylistic/eslint-plugin-js': 2.2.2(eslint@8.56.0) + '@stylistic/eslint-plugin-jsx': 2.2.2(eslint@8.56.0) + '@stylistic/eslint-plugin-plus': 2.2.2(eslint@8.56.0)(typescript@5.5.2) + '@stylistic/eslint-plugin-ts': 2.2.2(eslint@8.56.0)(typescript@5.5.2) '@types/eslint': 8.56.10 - eslint: 8.57.0 + eslint: 8.56.0 transitivePeerDependencies: + - supports-color - typescript '@types/eslint@8.56.10': @@ -5311,44 +5535,53 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2)': + '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2)': dependencies: '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/parser': 7.14.1(eslint@8.56.0)(typescript@5.5.2) '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/type-utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/type-utils': 7.14.1(eslint@8.56.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.14.1(eslint@8.56.0)(typescript@5.5.2) '@typescript-eslint/visitor-keys': 7.14.1 - eslint: 8.57.0 + eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 ts-api-utils: 1.3.0(typescript@5.5.2) + optionalDependencies: typescript: 5.5.2 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2)': + '@typescript-eslint/parser@7.14.1(eslint@8.56.0)(typescript@5.5.2)': dependencies: '@typescript-eslint/scope-manager': 7.14.1 '@typescript-eslint/types': 7.14.1 '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) '@typescript-eslint/visitor-keys': 7.14.1 debug: 4.3.4 - eslint: 8.57.0 + eslint: 8.56.0 + optionalDependencies: typescript: 5.5.2 + transitivePeerDependencies: + - supports-color '@typescript-eslint/scope-manager@7.14.1': dependencies: '@typescript-eslint/types': 7.14.1 '@typescript-eslint/visitor-keys': 7.14.1 - '@typescript-eslint/type-utils@7.14.1(eslint@8.57.0)(typescript@5.5.2)': + '@typescript-eslint/type-utils@7.14.1(eslint@8.56.0)(typescript@5.5.2)': dependencies: '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.14.1(eslint@8.56.0)(typescript@5.5.2) debug: 4.3.4 - eslint: 8.57.0 + eslint: 8.56.0 ts-api-utils: 1.3.0(typescript@5.5.2) + optionalDependencies: typescript: 5.5.2 + transitivePeerDependencies: + - supports-color '@typescript-eslint/types@7.14.1': {} @@ -5362,16 +5595,20 @@ snapshots: minimatch: 9.0.4 semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.5.2) + optionalDependencies: typescript: 5.5.2 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/utils@7.14.1(eslint@8.57.0)(typescript@5.5.2)': + '@typescript-eslint/utils@7.14.1(eslint@8.56.0)(typescript@5.5.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@typescript-eslint/scope-manager': 7.14.1 '@typescript-eslint/types': 7.14.1 '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - eslint: 8.57.0 + eslint: 8.56.0 transitivePeerDependencies: + - supports-color - typescript '@typescript-eslint/visitor-keys@7.14.1': @@ -5381,9 +5618,9 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.0.5(vite@5.3.1)(vue@3.4.30)': + '@vitejs/plugin-vue@5.0.5(vite@5.3.1(@types/node@20.14.8)(terser@5.19.4))(vue@3.4.30(typescript@5.5.2))': dependencies: - vite: 5.3.1(@types/node@20.14.8) + vite: 5.3.1(@types/node@20.14.8)(terser@5.19.4) vue: 3.4.30(typescript@5.5.2) '@vitest/expect@1.6.0': @@ -5479,7 +5716,7 @@ snapshots: '@vue/shared': 3.4.30 csstype: 3.1.3 - '@vue/server-renderer@3.4.30(vue@3.4.30)': + '@vue/server-renderer@3.4.30(vue@3.4.30(typescript@5.5.2))': dependencies: '@vue/compiler-ssr': 3.4.30 '@vue/shared': 3.4.30 @@ -5487,36 +5724,43 @@ snapshots: '@vue/shared@3.4.30': {} - '@vueuse/core@10.11.0(vue@3.4.30)': + '@vueuse/core@10.11.0(vue@3.4.30(typescript@5.5.2))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.11.0 - '@vueuse/shared': 10.11.0(vue@3.4.30) - vue-demi: 0.14.8(vue@3.4.30) + '@vueuse/shared': 10.11.0(vue@3.4.30(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/integrations@10.11.0(focus-trap@7.5.4)(vue@3.4.30)': + '@vueuse/integrations@10.11.0(focus-trap@7.5.4)(vue@3.4.30(typescript@5.5.2))': dependencies: - '@vueuse/core': 10.11.0(vue@3.4.30) - '@vueuse/shared': 10.11.0(vue@3.4.30) + '@vueuse/core': 10.11.0(vue@3.4.30(typescript@5.5.2)) + '@vueuse/shared': 10.11.0(vue@3.4.30(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) + optionalDependencies: focus-trap: 7.5.4 - vue-demi: 0.14.8(vue@3.4.30) transitivePeerDependencies: - '@vue/composition-api' - vue '@vueuse/metadata@10.11.0': {} - '@vueuse/shared@10.11.0(vue@3.4.30)': + '@vueuse/shared@10.11.0(vue@3.4.30(typescript@5.5.2))': dependencies: - vue-demi: 0.14.8(vue@3.4.30) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - acorn-jsx@5.3.2: {} + acorn-jsx@5.3.2(acorn@8.10.0): + dependencies: + acorn: 8.10.0 + + acorn-jsx@5.3.2(acorn@8.12.0): + dependencies: + acorn: 8.12.0 acorn-walk@8.3.2: {} @@ -5524,6 +5768,12 @@ snapshots: acorn@8.12.0: {} + agent-base@7.1.1: + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -5604,6 +5854,8 @@ snapshots: dependencies: lodash: 4.17.21 + asynckit@0.4.0: {} + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -5614,17 +5866,23 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) semver: 6.3.1 + transitivePeerDependencies: + - supports-color babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7): dependencies: '@babel/core': 7.24.7 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) core-js-compat: 3.37.1 + transitivePeerDependencies: + - supports-color babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.7): dependencies: '@babel/core': 7.24.7 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color balanced-match@1.0.2: {} @@ -5816,6 +6074,10 @@ snapshots: colorette@2.0.20: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + commander@12.1.0: {} commander@2.20.3: {} @@ -5862,8 +6124,17 @@ snapshots: cssesc@3.0.0: {} + cssstyle@4.0.1: + dependencies: + rrweb-cssom: 0.6.0 + csstype@3.1.3: {} + data-urls@5.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 @@ -5890,6 +6161,8 @@ snapshots: dependencies: ms: 2.1.2 + decimal.js@10.4.3: {} + deep-eql@4.1.4: dependencies: type-detect: 4.0.8 @@ -5917,6 +6190,8 @@ snapshots: defu@6.1.4: {} + delayed-stream@1.0.0: {} + destr@2.0.3: {} detect-indent@7.0.1: {} @@ -6105,9 +6380,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@8.57.0): + eslint-compat-utils@0.5.1(eslint@8.56.0): dependencies: - eslint: 8.57.0 + eslint: 8.56.0 semver: 7.5.4 eslint-config-flat-gitignore@0.1.5: @@ -6120,9 +6395,9 @@ snapshots: '@types/eslint': 8.56.10 pathe: 1.1.2 - eslint-formatting-reporter@0.0.0(eslint@8.57.0): + eslint-formatting-reporter@0.0.0(eslint@8.56.0): dependencies: - eslint: 8.57.0 + eslint: 8.56.0 prettier-linter-helpers: 1.0.0 eslint-import-resolver-node@0.3.9: @@ -6133,52 +6408,52 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-merge-processors@0.1.0(eslint@8.57.0): + eslint-merge-processors@0.1.0(eslint@8.56.0): dependencies: - eslint: 8.57.0 + eslint: 8.56.0 eslint-parser-plain@0.1.0: {} - eslint-plugin-antfu@2.3.3(eslint@8.57.0): + eslint-plugin-antfu@2.3.3(eslint@8.56.0): dependencies: '@antfu/utils': 0.7.8 - eslint: 8.57.0 + eslint: 8.56.0 - eslint-plugin-command@0.2.3(eslint@8.57.0): + eslint-plugin-command@0.2.3(eslint@8.56.0): dependencies: '@es-joy/jsdoccomment': 0.43.1 - eslint: 8.57.0 + eslint: 8.56.0 - eslint-plugin-es-x@7.7.0(eslint@8.57.0): + eslint-plugin-es-x@7.7.0(eslint@8.56.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.1 - eslint: 8.57.0 - eslint-compat-utils: 0.5.1(eslint@8.57.0) + eslint: 8.56.0 + eslint-compat-utils: 0.5.1(eslint@8.56.0) - eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0): + eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 8.57.0 + eslint: 8.56.0 ignore: 5.3.0 - eslint-plugin-format@0.1.2(eslint@8.57.0): + eslint-plugin-format@0.1.2(eslint@8.56.0): dependencies: '@dprint/formatter': 0.3.0 '@dprint/markdown': 0.17.1 '@dprint/toml': 0.6.2 - eslint: 8.57.0 - eslint-formatting-reporter: 0.0.0(eslint@8.57.0) + eslint: 8.56.0 + eslint-formatting-reporter: 0.0.0(eslint@8.56.0) eslint-parser-plain: 0.1.0 prettier: 3.3.2 synckit: 0.9.0 - eslint-plugin-import-x@0.5.2(eslint@8.57.0)(typescript@5.5.2): + eslint-plugin-import-x@0.5.2(eslint@8.56.0)(typescript@5.5.2): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.14.1(eslint@8.56.0)(typescript@5.5.2) debug: 4.3.4 doctrine: 3.0.0 - eslint: 8.57.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.5 is-glob: 4.0.3 @@ -6189,42 +6464,46 @@ snapshots: - supports-color - typescript - eslint-plugin-jsdoc@48.4.0(eslint@8.57.0): + eslint-plugin-jsdoc@48.4.0(eslint@8.56.0): dependencies: '@es-joy/jsdoccomment': 0.43.1 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.57.0 + eslint: 8.56.0 esquery: 1.5.0 parse-imports: 2.1.0 semver: 7.6.2 spdx-expression-parse: 4.0.0 synckit: 0.9.0 + transitivePeerDependencies: + - supports-color - eslint-plugin-jsonc@2.16.0(eslint@8.57.0): + eslint-plugin-jsonc@2.16.0(eslint@8.56.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - eslint: 8.57.0 - eslint-compat-utils: 0.5.1(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + eslint: 8.56.0 + eslint-compat-utils: 0.5.1(eslint@8.56.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 synckit: 0.6.2 - eslint-plugin-markdown@5.0.0(eslint@8.57.0): + eslint-plugin-markdown@5.0.0(eslint@8.56.0): dependencies: - eslint: 8.57.0 + eslint: 8.56.0 mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color - eslint-plugin-n@17.9.0(eslint@8.57.0): + eslint-plugin-n@17.9.0(eslint@8.56.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) enhanced-resolve: 5.17.0 - eslint: 8.57.0 - eslint-plugin-es-x: 7.7.0(eslint@8.57.0) + eslint: 8.56.0 + eslint-plugin-es-x: 7.7.0(eslint@8.56.0) get-tsconfig: 4.7.5 globals: 15.6.0 ignore: 5.3.0 @@ -6233,44 +6512,48 @@ snapshots: eslint-plugin-no-only-tests@3.1.0: {} - eslint-plugin-perfectionist@2.11.0(eslint@8.57.0)(typescript@5.5.2)(vue-eslint-parser@9.4.3): + eslint-plugin-perfectionist@2.11.0(eslint@8.56.0)(typescript@5.5.2)(vue-eslint-parser@9.4.3(eslint@8.56.0)): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 + '@typescript-eslint/utils': 7.14.1(eslint@8.56.0)(typescript@5.5.2) + eslint: 8.56.0 minimatch: 9.0.3 natural-compare-lite: 1.4.0 - vue-eslint-parser: 9.4.3(eslint@8.57.0) + optionalDependencies: + vue-eslint-parser: 9.4.3(eslint@8.56.0) transitivePeerDependencies: + - supports-color - typescript - eslint-plugin-regexp@2.6.0(eslint@8.57.0): + eslint-plugin-regexp@2.6.0(eslint@8.56.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.1 comment-parser: 1.4.1 - eslint: 8.57.0 + eslint: 8.56.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-toml@0.11.0(eslint@8.57.0): + eslint-plugin-toml@0.11.0(eslint@8.56.0): dependencies: debug: 4.3.4 - eslint: 8.57.0 - eslint-compat-utils: 0.5.1(eslint@8.57.0) + eslint: 8.56.0 + eslint-compat-utils: 0.5.1(eslint@8.56.0) lodash: 4.17.21 toml-eslint-parser: 0.9.3 + transitivePeerDependencies: + - supports-color - eslint-plugin-unicorn@53.0.0(eslint@8.57.0): + eslint-plugin-unicorn@53.0.0(eslint@8.56.0): dependencies: '@babel/helper-validator-identifier': 7.24.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint/eslintrc': 3.1.0 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.1 - eslint: 8.57.0 + eslint: 8.56.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -6281,47 +6564,56 @@ snapshots: regjsparser: 0.10.0 semver: 7.6.2 strip-indent: 3.0.0 + transitivePeerDependencies: + - supports-color - eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.14.1)(eslint@8.57.0): + eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0): dependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 + eslint: 8.56.0 eslint-rule-composer: 0.3.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2) - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.14.1)(eslint@8.57.0)(typescript@5.5.2)(vitest@1.6.0): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2)(vitest@1.6.0(@types/node@20.14.8)(jsdom@24.1.0)(terser@5.19.4)): dependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 - vitest: 1.6.0(@types/node@20.14.8) + '@typescript-eslint/utils': 7.14.1(eslint@8.56.0)(typescript@5.5.2) + eslint: 8.56.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.56.0)(typescript@5.5.2))(eslint@8.56.0)(typescript@5.5.2) + vitest: 1.6.0(@types/node@20.14.8)(jsdom@24.1.0)(terser@5.19.4) transitivePeerDependencies: + - supports-color - typescript - eslint-plugin-vue@9.26.0(eslint@8.57.0): + eslint-plugin-vue@9.26.0(eslint@8.56.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - eslint: 8.57.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + eslint: 8.56.0 globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.0 semver: 7.6.2 - vue-eslint-parser: 9.4.3(eslint@8.57.0) + vue-eslint-parser: 9.4.3(eslint@8.56.0) xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color - eslint-plugin-yml@1.14.0(eslint@8.57.0): + eslint-plugin-yml@1.14.0(eslint@8.56.0): dependencies: debug: 4.3.4 - eslint: 8.57.0 - eslint-compat-utils: 0.5.1(eslint@8.57.0) + eslint: 8.56.0 + eslint-compat-utils: 0.5.1(eslint@8.56.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.3 + transitivePeerDependencies: + - supports-color - eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.30)(eslint@8.57.0): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.30)(eslint@8.56.0): dependencies: '@vue/compiler-sfc': 3.4.30 - eslint: 8.57.0 + eslint: 8.56.0 eslint-rule-composer@0.3.0: {} @@ -6381,47 +6673,8 @@ snapshots: optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 - - eslint@8.57.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - graphemer: 1.4.0 - ignore: 5.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 + transitivePeerDependencies: + - supports-color esno@4.7.0: dependencies: @@ -6430,13 +6683,13 @@ snapshots: espree@10.1.0: dependencies: acorn: 8.12.0 - acorn-jsx: 5.3.2 + acorn-jsx: 5.3.2(acorn@8.12.0) eslint-visitor-keys: 4.0.0 espree@9.6.1: dependencies: acorn: 8.10.0 - acorn-jsx: 5.3.2 + acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.1 esquery@1.4.0: @@ -6562,6 +6815,12 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -6749,6 +7008,17 @@ snapshots: dependencies: whatwg-encoding: 2.0.0 + html-encoding-sniffer@4.0.0: + dependencies: + whatwg-encoding: 3.1.1 + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 @@ -6776,6 +7046,13 @@ snapshots: - debug - supports-color + https-proxy-agent@7.0.4: + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + human-signals@5.0.0: {} iconv-lite@0.6.3: @@ -6889,6 +7166,8 @@ snapshots: is-path-inside@3.0.3: {} + is-potential-custom-element-name@1.0.1: {} + is-reference@1.2.1: dependencies: '@types/estree': 1.0.5 @@ -6956,6 +7235,34 @@ snapshots: jsdoc-type-pratt-parser@4.0.0: {} + jsdom@24.1.0: + dependencies: + cssstyle: 4.0.1 + data-urls: 5.0.0 + decimal.js: 10.4.3 + form-data: 4.0.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.10 + parse5: 7.1.2 + rrweb-cssom: 0.7.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + ws: 8.17.1 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jsesc@0.5.0: {} jsesc@2.5.2: {} @@ -7015,6 +7322,7 @@ snapshots: string-argv: 0.3.2 yaml: 2.4.5 transitivePeerDependencies: + - supports-color - typescript listr2@8.2.3(typescript@5.5.2): @@ -7104,6 +7412,8 @@ snapshots: micromark: 2.11.4 parse-entities: 2.0.0 unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color mdast-util-to-string@2.0.0: {} @@ -7117,6 +7427,8 @@ snapshots: dependencies: debug: 4.3.4 parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color micromatch@4.0.5: dependencies: @@ -7128,6 +7440,12 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + mime@1.6.0: {} mimic-fn@2.1.0: {} @@ -7227,6 +7545,8 @@ snapshots: dependencies: boolbase: 1.0.0 + nwsapi@2.2.10: {} + nypm@0.3.8: dependencies: citty: 0.1.6 @@ -7360,6 +7680,10 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse5@7.1.2: + dependencies: + entities: 4.5.0 + path-exists@4.0.0: {} path-exists@5.0.0: {} @@ -7459,12 +7783,18 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 + psl@1.9.0: {} + punycode@2.3.0: {} + punycode@2.3.1: {} + qs@6.11.2: dependencies: side-channel: 1.0.4 + querystringify@2.2.0: {} + queue-microtask@1.2.3: {} randombytes@2.1.0: @@ -7623,6 +7953,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.18.0 fsevents: 2.3.2 + rrweb-cssom@0.6.0: {} + + rrweb-cssom@0.7.1: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -7646,6 +7980,10 @@ snapshots: safer-buffer@2.1.2: {} + saxes@6.0.0: + dependencies: + xmlchars: 2.2.0 + scslre@0.3.0: dependencies: '@eslint-community/regexpp': 4.10.1 @@ -7877,6 +8215,8 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + symbol-tree@3.2.4: {} + synckit@0.6.2: dependencies: tslib: 2.6.2 @@ -7937,6 +8277,17 @@ snapshots: dependencies: eslint-visitor-keys: 3.4.1 + tough-cookie@4.1.4: + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + universalify: 0.2.0 + url-parse: 1.5.10 + + tr46@5.0.0: + dependencies: + punycode: 2.3.1 + ts-api-utils@1.3.0(typescript@5.5.2): dependencies: typescript: 5.5.2 @@ -8046,6 +8397,8 @@ snapshots: dependencies: '@types/unist': 2.0.10 + universalify@0.2.0: {} + universalify@2.0.0: {} update-browserslist-db@1.0.16(browserslist@4.21.10): @@ -8066,6 +8419,11 @@ snapshots: url-join@4.0.1: {} + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + util-deprecate@1.0.2: {} validate-npm-package-license@3.0.4: @@ -8073,13 +8431,13 @@ snapshots: spdx-correct: 3.1.1 spdx-expression-parse: 3.0.1 - vite-node@1.6.0(@types/node@20.14.8): + vite-node@1.6.0(@types/node@20.14.8)(terser@5.19.4): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.3.1(@types/node@20.14.8) + vite: 5.3.1(@types/node@20.14.8)(terser@5.19.4) transitivePeerDependencies: - '@types/node' - less @@ -8087,35 +8445,39 @@ snapshots: - sass - stylus - sugarss + - supports-color - terser - vite@5.3.1(@types/node@20.14.8): + vite@5.3.1(@types/node@20.14.8)(terser@5.19.4): dependencies: - '@types/node': 20.14.8 esbuild: 0.21.5 postcss: 8.4.38 rollup: 4.18.0 optionalDependencies: + '@types/node': 20.14.8 fsevents: 2.3.3 + terser: 5.19.4 - vitepress@1.2.3(@algolia/client-search@4.23.3)(@types/node@20.14.8)(search-insights@2.14.0)(typescript@5.5.2): + vitepress@1.2.3(@algolia/client-search@4.23.3)(@types/node@20.14.8)(postcss@8.4.38)(search-insights@2.14.0)(terser@5.19.4)(typescript@5.5.2): dependencies: '@docsearch/css': 3.6.0 '@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.14.0) '@shikijs/core': 1.9.0 '@shikijs/transformers': 1.9.0 '@types/markdown-it': 14.1.1 - '@vitejs/plugin-vue': 5.0.5(vite@5.3.1)(vue@3.4.30) + '@vitejs/plugin-vue': 5.0.5(vite@5.3.1(@types/node@20.14.8)(terser@5.19.4))(vue@3.4.30(typescript@5.5.2)) '@vue/devtools-api': 7.3.4 '@vue/shared': 3.4.30 - '@vueuse/core': 10.11.0(vue@3.4.30) - '@vueuse/integrations': 10.11.0(focus-trap@7.5.4)(vue@3.4.30) + '@vueuse/core': 10.11.0(vue@3.4.30(typescript@5.5.2)) + '@vueuse/integrations': 10.11.0(focus-trap@7.5.4)(vue@3.4.30(typescript@5.5.2)) focus-trap: 7.5.4 mark.js: 8.11.1 minisearch: 6.3.0 shiki: 1.9.0 - vite: 5.3.1(@types/node@20.14.8) + vite: 5.3.1(@types/node@20.14.8)(terser@5.19.4) vue: 3.4.30(typescript@5.5.2) + optionalDependencies: + postcss: 8.4.38 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -8143,9 +8505,8 @@ snapshots: - typescript - universal-cookie - vitest@1.6.0(@types/node@20.14.8): + vitest@1.6.0(@types/node@20.14.8)(jsdom@24.1.0)(terser@5.19.4): dependencies: - '@types/node': 20.14.8 '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 '@vitest/snapshot': 1.6.0 @@ -8163,45 +8524,69 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.3.1(@types/node@20.14.8) - vite-node: 1.6.0(@types/node@20.14.8) + vite: 5.3.1(@types/node@20.14.8)(terser@5.19.4) + vite-node: 1.6.0(@types/node@20.14.8)(terser@5.19.4) why-is-node-running: 2.2.2 + optionalDependencies: + '@types/node': 20.14.8 + jsdom: 24.1.0 transitivePeerDependencies: - less - lightningcss - sass - stylus - sugarss + - supports-color - terser - vue-demi@0.14.8(vue@3.4.30): + vue-demi@0.14.8(vue@3.4.30(typescript@5.5.2)): dependencies: vue: 3.4.30(typescript@5.5.2) - vue-eslint-parser@9.4.3(eslint@8.57.0): + vue-eslint-parser@9.4.3(eslint@8.56.0): dependencies: debug: 4.3.4 - eslint: 8.57.0 + eslint: 8.56.0 eslint-scope: 7.2.0 eslint-visitor-keys: 3.4.1 espree: 9.6.1 esquery: 1.4.0 lodash: 4.17.21 semver: 7.5.4 + transitivePeerDependencies: + - supports-color vue@3.4.30(typescript@5.5.2): dependencies: '@vue/compiler-dom': 3.4.30 '@vue/compiler-sfc': 3.4.30 '@vue/runtime-dom': 3.4.30 - '@vue/server-renderer': 3.4.30(vue@3.4.30) + '@vue/server-renderer': 3.4.30(vue@3.4.30(typescript@5.5.2)) '@vue/shared': 3.4.30 + optionalDependencies: typescript: 5.5.2 + w3c-xmlserializer@5.0.0: + dependencies: + xml-name-validator: 5.0.0 + + webidl-conversions@7.0.0: {} + whatwg-encoding@2.0.0: dependencies: iconv-lite: 0.6.3 + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + whatwg-url@14.0.0: + dependencies: + tr46: 5.0.0 + webidl-conversions: 7.0.0 + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 @@ -8263,8 +8648,14 @@ snapshots: wrappy@1.0.2: {} + ws@8.17.1: {} + xml-name-validator@4.0.0: {} + xml-name-validator@5.0.0: {} + + xmlchars@2.2.0: {} + y18n@5.0.8: {} yallist@3.1.1: {} diff --git a/tsconfig.json b/tsconfig.json index 23e7c8e..034a89b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "target": "ESNext", + "lib": ["ESNext", "DOM"], "baseUrl": ".", "module": "ESNext", "moduleResolution": "node",