From 11e56a8147df1e735449a356526b926f1127510f Mon Sep 17 00:00:00 2001 From: mesqueeb Date: Mon, 24 Apr 2023 10:49:14 +0900 Subject: [PATCH] chore: update dependencies --- dist/index.cjs | 220 ++-- dist/index.es.js | 220 ++-- dist/types/extensions.d.ts | 2 +- dist/types/index.d.ts | 4 +- dist/types/merge.d.ts | 34 +- dist/types/typeUtils/Assign.d.ts | 100 +- dist/types/typeUtils/Iteration.d.ts | 514 +++++----- dist/types/typeUtils/List.d.ts | 58 +- dist/types/typeUtils/MergeDeep.d.ts | 114 +-- dist/types/typeUtils/PrettyPrint.d.ts | 12 +- package-lock.json | 1342 ++++++++++++++++++------- package.json | 18 +- 12 files changed, 1629 insertions(+), 1009 deletions(-) diff --git a/dist/index.cjs b/dist/index.cjs index c5468cc..5ee7883 100644 --- a/dist/index.cjs +++ b/dist/index.cjs @@ -2,118 +2,118 @@ var isWhat = require('is-what'); -function concatArrays(originVal, newVal) { - if (isWhat.isArray(originVal) && isWhat.isArray(newVal)) { - // concat logic - return originVal.concat(newVal); - } - return newVal; // always return newVal as fallback!! +function concatArrays(originVal, newVal) { + if (isWhat.isArray(originVal) && isWhat.isArray(newVal)) { + // concat logic + return originVal.concat(newVal); + } + return newVal; // always return newVal as fallback!! } -function assignProp(carry, key, newVal, originalObject) { - const propType = {}.propertyIsEnumerable.call(originalObject, key) - ? 'enumerable' - : 'nonenumerable'; - if (propType === 'enumerable') - carry[key] = newVal; - if (propType === 'nonenumerable') { - Object.defineProperty(carry, key, { - value: newVal, - enumerable: false, - writable: true, - configurable: true, - }); - } -} -function mergeRecursively(origin, newComer, compareFn) { - // always return newComer if its not an object - if (!isWhat.isPlainObject(newComer)) - return newComer; - // define newObject to merge all values upon - let newObject = {}; - if (isWhat.isPlainObject(origin)) { - const props = Object.getOwnPropertyNames(origin); - const symbols = Object.getOwnPropertySymbols(origin); - newObject = [...props, ...symbols].reduce((carry, key) => { - const targetVal = origin[key]; - if ((!isWhat.isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) || - (isWhat.isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) { - assignProp(carry, key, targetVal, origin); - } - return carry; - }, {}); - } - // newObject has all properties that newComer hasn't - const props = Object.getOwnPropertyNames(newComer); - const symbols = Object.getOwnPropertySymbols(newComer); - const result = [...props, ...symbols].reduce((carry, key) => { - // re-define the origin and newComer as targetVal and newVal - let newVal = newComer[key]; - const targetVal = isWhat.isPlainObject(origin) ? origin[key] : undefined; - // When newVal is an object do the merge recursively - if (targetVal !== undefined && isWhat.isPlainObject(newVal)) { - newVal = mergeRecursively(targetVal, newVal, compareFn); - } - const propToAssign = compareFn ? compareFn(targetVal, newVal, key) : newVal; - assignProp(carry, key, propToAssign, newComer); - return carry; - }, newObject); - return result; -} -/** - * Merge anything recursively. - * Objects get merged, special objects (classes etc.) are re-assigned "as is". - * Basic types overwrite objects or other basic types. - */ -function merge(object, ...otherObjects) { - return otherObjects.reduce((result, newComer) => { - return mergeRecursively(result, newComer); - }, object); -} -function mergeAndCompare(compareFn, object, ...otherObjects) { - return otherObjects.reduce((result, newComer) => { - return mergeRecursively(result, newComer, compareFn); - }, object); -} -function mergeAndConcat(object, ...otherObjects) { - return otherObjects.reduce((result, newComer) => { - return mergeRecursively(result, newComer, concatArrays); - }, object); -} -// import { Timestamp } from '../test/Timestamp' -// type T1 = { date: Timestamp } -// type T2 = [{ b: string[] }, { b: number[] }, { date: Timestamp }] -// type TestT = Merge -// type A1 = { arr: string[] } -// type A2 = { arr: number[] } -// type A3 = { arr: boolean[] } -// type TestA = Merge -// interface I1 { -// date: Timestamp -// } -// interface I2 { -// date: Timestamp -// } -// const _a: I2 = { date: '' } as unknown as I2 -// type TestI = Merge -// // ReturnType<(typeof merge)> -// const a = merge(_a, [_a]) -// interface Arguments extends Record { -// key: string; -// } -// const aa1: Arguments = { key: "value1" } -// const aa2: Arguments = { key: "value2" } -// const aa = merge(a1, a2); -// interface Barguments { -// key: string -// } -// const ba1: Barguments = { key: 'value1' } -// const ba2: Barguments = { key: 'value2' } -// const ba = merge(ba1, ba2) -// interface Carguments { -// key: string -// } -// const ca = merge({ key: 'value1' }, { key: 'value2' }) +function assignProp(carry, key, newVal, originalObject) { + const propType = {}.propertyIsEnumerable.call(originalObject, key) + ? 'enumerable' + : 'nonenumerable'; + if (propType === 'enumerable') + carry[key] = newVal; + if (propType === 'nonenumerable') { + Object.defineProperty(carry, key, { + value: newVal, + enumerable: false, + writable: true, + configurable: true, + }); + } +} +function mergeRecursively(origin, newComer, compareFn) { + // always return newComer if its not an object + if (!isWhat.isPlainObject(newComer)) + return newComer; + // define newObject to merge all values upon + let newObject = {}; + if (isWhat.isPlainObject(origin)) { + const props = Object.getOwnPropertyNames(origin); + const symbols = Object.getOwnPropertySymbols(origin); + newObject = [...props, ...symbols].reduce((carry, key) => { + const targetVal = origin[key]; + if ((!isWhat.isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) || + (isWhat.isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) { + assignProp(carry, key, targetVal, origin); + } + return carry; + }, {}); + } + // newObject has all properties that newComer hasn't + const props = Object.getOwnPropertyNames(newComer); + const symbols = Object.getOwnPropertySymbols(newComer); + const result = [...props, ...symbols].reduce((carry, key) => { + // re-define the origin and newComer as targetVal and newVal + let newVal = newComer[key]; + const targetVal = isWhat.isPlainObject(origin) ? origin[key] : undefined; + // When newVal is an object do the merge recursively + if (targetVal !== undefined && isWhat.isPlainObject(newVal)) { + newVal = mergeRecursively(targetVal, newVal, compareFn); + } + const propToAssign = compareFn ? compareFn(targetVal, newVal, key) : newVal; + assignProp(carry, key, propToAssign, newComer); + return carry; + }, newObject); + return result; +} +/** + * Merge anything recursively. + * Objects get merged, special objects (classes etc.) are re-assigned "as is". + * Basic types overwrite objects or other basic types. + */ +function merge(object, ...otherObjects) { + return otherObjects.reduce((result, newComer) => { + return mergeRecursively(result, newComer); + }, object); +} +function mergeAndCompare(compareFn, object, ...otherObjects) { + return otherObjects.reduce((result, newComer) => { + return mergeRecursively(result, newComer, compareFn); + }, object); +} +function mergeAndConcat(object, ...otherObjects) { + return otherObjects.reduce((result, newComer) => { + return mergeRecursively(result, newComer, concatArrays); + }, object); +} +// import { Timestamp } from '../test/Timestamp' +// type T1 = { date: Timestamp } +// type T2 = [{ b: string[] }, { b: number[] }, { date: Timestamp }] +// type TestT = Merge +// type A1 = { arr: string[] } +// type A2 = { arr: number[] } +// type A3 = { arr: boolean[] } +// type TestA = Merge +// interface I1 { +// date: Timestamp +// } +// interface I2 { +// date: Timestamp +// } +// const _a: I2 = { date: '' } as unknown as I2 +// type TestI = Merge +// // ReturnType<(typeof merge)> +// const a = merge(_a, [_a]) +// interface Arguments extends Record { +// key: string; +// } +// const aa1: Arguments = { key: "value1" } +// const aa2: Arguments = { key: "value2" } +// const aa = merge(a1, a2); +// interface Barguments { +// key: string +// } +// const ba1: Barguments = { key: 'value1' } +// const ba2: Barguments = { key: 'value2' } +// const ba = merge(ba1, ba2) +// interface Carguments { +// key: string +// } +// const ca = merge({ key: 'value1' }, { key: 'value2' }) // type P = Pop exports.concatArrays = concatArrays; diff --git a/dist/index.es.js b/dist/index.es.js index c6f0915..f72ec42 100644 --- a/dist/index.es.js +++ b/dist/index.es.js @@ -1,117 +1,117 @@ import { isArray, isPlainObject, isSymbol } from 'is-what'; -function concatArrays(originVal, newVal) { - if (isArray(originVal) && isArray(newVal)) { - // concat logic - return originVal.concat(newVal); - } - return newVal; // always return newVal as fallback!! +function concatArrays(originVal, newVal) { + if (isArray(originVal) && isArray(newVal)) { + // concat logic + return originVal.concat(newVal); + } + return newVal; // always return newVal as fallback!! } -function assignProp(carry, key, newVal, originalObject) { - const propType = {}.propertyIsEnumerable.call(originalObject, key) - ? 'enumerable' - : 'nonenumerable'; - if (propType === 'enumerable') - carry[key] = newVal; - if (propType === 'nonenumerable') { - Object.defineProperty(carry, key, { - value: newVal, - enumerable: false, - writable: true, - configurable: true, - }); - } -} -function mergeRecursively(origin, newComer, compareFn) { - // always return newComer if its not an object - if (!isPlainObject(newComer)) - return newComer; - // define newObject to merge all values upon - let newObject = {}; - if (isPlainObject(origin)) { - const props = Object.getOwnPropertyNames(origin); - const symbols = Object.getOwnPropertySymbols(origin); - newObject = [...props, ...symbols].reduce((carry, key) => { - const targetVal = origin[key]; - if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) || - (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) { - assignProp(carry, key, targetVal, origin); - } - return carry; - }, {}); - } - // newObject has all properties that newComer hasn't - const props = Object.getOwnPropertyNames(newComer); - const symbols = Object.getOwnPropertySymbols(newComer); - const result = [...props, ...symbols].reduce((carry, key) => { - // re-define the origin and newComer as targetVal and newVal - let newVal = newComer[key]; - const targetVal = isPlainObject(origin) ? origin[key] : undefined; - // When newVal is an object do the merge recursively - if (targetVal !== undefined && isPlainObject(newVal)) { - newVal = mergeRecursively(targetVal, newVal, compareFn); - } - const propToAssign = compareFn ? compareFn(targetVal, newVal, key) : newVal; - assignProp(carry, key, propToAssign, newComer); - return carry; - }, newObject); - return result; -} -/** - * Merge anything recursively. - * Objects get merged, special objects (classes etc.) are re-assigned "as is". - * Basic types overwrite objects or other basic types. - */ -function merge(object, ...otherObjects) { - return otherObjects.reduce((result, newComer) => { - return mergeRecursively(result, newComer); - }, object); -} -function mergeAndCompare(compareFn, object, ...otherObjects) { - return otherObjects.reduce((result, newComer) => { - return mergeRecursively(result, newComer, compareFn); - }, object); -} -function mergeAndConcat(object, ...otherObjects) { - return otherObjects.reduce((result, newComer) => { - return mergeRecursively(result, newComer, concatArrays); - }, object); -} -// import { Timestamp } from '../test/Timestamp' -// type T1 = { date: Timestamp } -// type T2 = [{ b: string[] }, { b: number[] }, { date: Timestamp }] -// type TestT = Merge -// type A1 = { arr: string[] } -// type A2 = { arr: number[] } -// type A3 = { arr: boolean[] } -// type TestA = Merge -// interface I1 { -// date: Timestamp -// } -// interface I2 { -// date: Timestamp -// } -// const _a: I2 = { date: '' } as unknown as I2 -// type TestI = Merge -// // ReturnType<(typeof merge)> -// const a = merge(_a, [_a]) -// interface Arguments extends Record { -// key: string; -// } -// const aa1: Arguments = { key: "value1" } -// const aa2: Arguments = { key: "value2" } -// const aa = merge(a1, a2); -// interface Barguments { -// key: string -// } -// const ba1: Barguments = { key: 'value1' } -// const ba2: Barguments = { key: 'value2' } -// const ba = merge(ba1, ba2) -// interface Carguments { -// key: string -// } -// const ca = merge({ key: 'value1' }, { key: 'value2' }) +function assignProp(carry, key, newVal, originalObject) { + const propType = {}.propertyIsEnumerable.call(originalObject, key) + ? 'enumerable' + : 'nonenumerable'; + if (propType === 'enumerable') + carry[key] = newVal; + if (propType === 'nonenumerable') { + Object.defineProperty(carry, key, { + value: newVal, + enumerable: false, + writable: true, + configurable: true, + }); + } +} +function mergeRecursively(origin, newComer, compareFn) { + // always return newComer if its not an object + if (!isPlainObject(newComer)) + return newComer; + // define newObject to merge all values upon + let newObject = {}; + if (isPlainObject(origin)) { + const props = Object.getOwnPropertyNames(origin); + const symbols = Object.getOwnPropertySymbols(origin); + newObject = [...props, ...symbols].reduce((carry, key) => { + const targetVal = origin[key]; + if ((!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key)) || + (isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key))) { + assignProp(carry, key, targetVal, origin); + } + return carry; + }, {}); + } + // newObject has all properties that newComer hasn't + const props = Object.getOwnPropertyNames(newComer); + const symbols = Object.getOwnPropertySymbols(newComer); + const result = [...props, ...symbols].reduce((carry, key) => { + // re-define the origin and newComer as targetVal and newVal + let newVal = newComer[key]; + const targetVal = isPlainObject(origin) ? origin[key] : undefined; + // When newVal is an object do the merge recursively + if (targetVal !== undefined && isPlainObject(newVal)) { + newVal = mergeRecursively(targetVal, newVal, compareFn); + } + const propToAssign = compareFn ? compareFn(targetVal, newVal, key) : newVal; + assignProp(carry, key, propToAssign, newComer); + return carry; + }, newObject); + return result; +} +/** + * Merge anything recursively. + * Objects get merged, special objects (classes etc.) are re-assigned "as is". + * Basic types overwrite objects or other basic types. + */ +function merge(object, ...otherObjects) { + return otherObjects.reduce((result, newComer) => { + return mergeRecursively(result, newComer); + }, object); +} +function mergeAndCompare(compareFn, object, ...otherObjects) { + return otherObjects.reduce((result, newComer) => { + return mergeRecursively(result, newComer, compareFn); + }, object); +} +function mergeAndConcat(object, ...otherObjects) { + return otherObjects.reduce((result, newComer) => { + return mergeRecursively(result, newComer, concatArrays); + }, object); +} +// import { Timestamp } from '../test/Timestamp' +// type T1 = { date: Timestamp } +// type T2 = [{ b: string[] }, { b: number[] }, { date: Timestamp }] +// type TestT = Merge +// type A1 = { arr: string[] } +// type A2 = { arr: number[] } +// type A3 = { arr: boolean[] } +// type TestA = Merge +// interface I1 { +// date: Timestamp +// } +// interface I2 { +// date: Timestamp +// } +// const _a: I2 = { date: '' } as unknown as I2 +// type TestI = Merge +// // ReturnType<(typeof merge)> +// const a = merge(_a, [_a]) +// interface Arguments extends Record { +// key: string; +// } +// const aa1: Arguments = { key: "value1" } +// const aa2: Arguments = { key: "value2" } +// const aa = merge(a1, a2); +// interface Barguments { +// key: string +// } +// const ba1: Barguments = { key: 'value1' } +// const ba2: Barguments = { key: 'value2' } +// const ba = merge(ba1, ba2) +// interface Carguments { +// key: string +// } +// const ca = merge({ key: 'value1' }, { key: 'value2' }) // type P = Pop export { concatArrays, merge, mergeAndCompare, mergeAndConcat }; diff --git a/dist/types/extensions.d.ts b/dist/types/extensions.d.ts index 2c15a94..db6e464 100644 --- a/dist/types/extensions.d.ts +++ b/dist/types/extensions.d.ts @@ -1 +1 @@ -export declare function concatArrays(originVal: any, newVal: any): any | any[]; +export declare function concatArrays(originVal: any, newVal: any): any | any[]; diff --git a/dist/types/index.d.ts b/dist/types/index.d.ts index 2f0596b..c756609 100644 --- a/dist/types/index.d.ts +++ b/dist/types/index.d.ts @@ -1,2 +1,2 @@ -export * from './merge.js'; -export * from './extensions.js'; +export * from './merge.js'; +export * from './extensions.js'; diff --git a/dist/types/merge.d.ts b/dist/types/merge.d.ts index 40e3218..8610626 100644 --- a/dist/types/merge.d.ts +++ b/dist/types/merge.d.ts @@ -1,17 +1,17 @@ -import type { Assign } from './typeUtils/Assign.js'; -import type { Pop } from './typeUtils/List.js'; -import type { PrettyPrint } from './typeUtils/PrettyPrint.js'; -/** - * The return type of `merge()`. It reflects the type that is returned by JavaScript. - * - * This TS Utility can be used as standalone as well - */ -export type Merge = T extends Record ? Ts extends Record[] ? PrettyPrint> : Pop : Pop; -/** - * Merge anything recursively. - * Objects get merged, special objects (classes etc.) are re-assigned "as is". - * Basic types overwrite objects or other basic types. - */ -export declare function merge(object: T, ...otherObjects: Tn): Merge; -export declare function mergeAndCompare(compareFn: (prop1: any, prop2: any, propName: string | symbol) => any, object: T, ...otherObjects: Tn): Merge; -export declare function mergeAndConcat(object: T, ...otherObjects: Tn): Merge; +import type { Assign } from './typeUtils/Assign.js'; +import type { Pop } from './typeUtils/List.js'; +import type { PrettyPrint } from './typeUtils/PrettyPrint.js'; +/** + * The return type of `merge()`. It reflects the type that is returned by JavaScript. + * + * This TS Utility can be used as standalone as well + */ +export type Merge = T extends Record ? Ts extends Record[] ? PrettyPrint> : Pop : Pop; +/** + * Merge anything recursively. + * Objects get merged, special objects (classes etc.) are re-assigned "as is". + * Basic types overwrite objects or other basic types. + */ +export declare function merge(object: T, ...otherObjects: Tn): Merge; +export declare function mergeAndCompare(compareFn: (prop1: any, prop2: any, propName: string | symbol) => any, object: T, ...otherObjects: Tn): Merge; +export declare function mergeAndConcat(object: T, ...otherObjects: Tn): Merge; diff --git a/dist/types/typeUtils/Assign.d.ts b/dist/types/typeUtils/Assign.d.ts index bf08388..b678c9d 100644 --- a/dist/types/typeUtils/Assign.d.ts +++ b/dist/types/typeUtils/Assign.d.ts @@ -1,50 +1,50 @@ -import type { MergeDeep } from './MergeDeep.js'; -import type { Iteration, IterationOf, Pos, Next } from './Iteration.js'; -import type { Length, List } from './List.js'; -/** - * Ask TS to re-check that `A1` extends `A2`. - * And if it fails, `A2` will be enforced anyway. - * Can also be used to add constraints on parameters. - * @param A1 to check against - * @param A2 to cast to - * @returns `A1 | A2` - * @example - * ```ts - * type test0 = Cast<'42', string> // '42' - * type test1 = Cast<'42', number> // number - * ``` - */ -type Cast = A1 extends A2 ? A1 : A2; -/** - * Check whether `A1` is part of `A2` or not. The difference with - * `extends` is that it forces a [[Boolean]] return. - * @param A1 - * @param A2 - * @returns [[Boolean]] - * @example - * ```ts - * type test0 = Extends<'a' | 'b', 'b'> // Boolean - * type test1 = Extends<'a', 'a' | 'b'> // True - * - * type test2 = Extends<{a: string}, {a: any}> // True - * type test3 = Extends<{a: any}, {a: any, b: any}> // False - * - * type test4 = Extends // False - * /// Nothing cannot extend nothing, use `Equals` - * ``` - */ -type Extends = [A1] extends [never] ? 0 : A1 extends A2 ? 1 : 0; -type __Assign, Os extends List>, I extends Iteration = IterationOf<0>> = Extends, Length> extends 1 ? O : __Assign]>, Os, Next>; -type _Assign, Os extends List>> = __Assign extends infer X ? Cast> : never; -/** - * Assign a list of [[Object]] into `O` with [[MergeDeep]]. Merges from right to - * left, first items get overridden by the next ones (last-in overrides). - * @param O to assign to - * @param Os to assign - * @returns [[Object]] - * @example - * ```ts - * ``` - */ -export type Assign, Os extends List>> = O extends unknown ? (Os extends unknown ? _Assign : never) : never; -export {}; +import type { MergeDeep } from './MergeDeep.js'; +import type { Iteration, IterationOf, Pos, Next } from './Iteration.js'; +import type { Length, List } from './List.js'; +/** + * Ask TS to re-check that `A1` extends `A2`. + * And if it fails, `A2` will be enforced anyway. + * Can also be used to add constraints on parameters. + * @param A1 to check against + * @param A2 to cast to + * @returns `A1 | A2` + * @example + * ```ts + * type test0 = Cast<'42', string> // '42' + * type test1 = Cast<'42', number> // number + * ``` + */ +type Cast = A1 extends A2 ? A1 : A2; +/** + * Check whether `A1` is part of `A2` or not. The difference with + * `extends` is that it forces a [[Boolean]] return. + * @param A1 + * @param A2 + * @returns [[Boolean]] + * @example + * ```ts + * type test0 = Extends<'a' | 'b', 'b'> // Boolean + * type test1 = Extends<'a', 'a' | 'b'> // True + * + * type test2 = Extends<{a: string}, {a: any}> // True + * type test3 = Extends<{a: any}, {a: any, b: any}> // False + * + * type test4 = Extends // False + * /// Nothing cannot extend nothing, use `Equals` + * ``` + */ +type Extends = [A1] extends [never] ? 0 : A1 extends A2 ? 1 : 0; +type __Assign, Os extends List>, I extends Iteration = IterationOf<0>> = Extends, Length> extends 1 ? O : __Assign]>, Os, Next>; +type _Assign, Os extends List>> = __Assign extends infer X ? Cast> : never; +/** + * Assign a list of [[Object]] into `O` with [[MergeDeep]]. Merges from right to + * left, first items get overridden by the next ones (last-in overrides). + * @param O to assign to + * @param Os to assign + * @returns [[Object]] + * @example + * ```ts + * ``` + */ +export type Assign, Os extends List>> = O extends unknown ? (Os extends unknown ? _Assign : never) : never; +export {}; diff --git a/dist/types/typeUtils/Iteration.d.ts b/dist/types/typeUtils/Iteration.d.ts index 04153cf..001e671 100644 --- a/dist/types/typeUtils/Iteration.d.ts +++ b/dist/types/typeUtils/Iteration.d.ts @@ -1,257 +1,257 @@ -/** - * An entry of `IterationMap` - */ -export type Iteration = [ - value: number, - sign: '-' | '0' | '+', - prev: keyof IterationMap, - next: keyof IterationMap, - oppo: keyof IterationMap -]; -export type IterationMap = { - '__': [number, '-' | '0' | '+', '__', '__', '__']; - '-100': [-100, '-', '__', '-99', '100']; - '-99': [-99, '-', '-100', '-98', '99']; - '-98': [-98, '-', '-99', '-97', '98']; - '-97': [-97, '-', '-98', '-96', '97']; - '-96': [-96, '-', '-97', '-95', '96']; - '-95': [-95, '-', '-96', '-94', '95']; - '-94': [-94, '-', '-95', '-93', '94']; - '-93': [-93, '-', '-94', '-92', '93']; - '-92': [-92, '-', '-93', '-91', '92']; - '-91': [-91, '-', '-92', '-90', '91']; - '-90': [-90, '-', '-91', '-89', '90']; - '-89': [-89, '-', '-90', '-88', '89']; - '-88': [-88, '-', '-89', '-87', '88']; - '-87': [-87, '-', '-88', '-86', '87']; - '-86': [-86, '-', '-87', '-85', '86']; - '-85': [-85, '-', '-86', '-84', '85']; - '-84': [-84, '-', '-85', '-83', '84']; - '-83': [-83, '-', '-84', '-82', '83']; - '-82': [-82, '-', '-83', '-81', '82']; - '-81': [-81, '-', '-82', '-80', '81']; - '-80': [-80, '-', '-81', '-79', '80']; - '-79': [-79, '-', '-80', '-78', '79']; - '-78': [-78, '-', '-79', '-77', '78']; - '-77': [-77, '-', '-78', '-76', '77']; - '-76': [-76, '-', '-77', '-75', '76']; - '-75': [-75, '-', '-76', '-74', '75']; - '-74': [-74, '-', '-75', '-73', '74']; - '-73': [-73, '-', '-74', '-72', '73']; - '-72': [-72, '-', '-73', '-71', '72']; - '-71': [-71, '-', '-72', '-70', '71']; - '-70': [-70, '-', '-71', '-69', '70']; - '-69': [-69, '-', '-70', '-68', '69']; - '-68': [-68, '-', '-69', '-67', '68']; - '-67': [-67, '-', '-68', '-66', '67']; - '-66': [-66, '-', '-67', '-65', '66']; - '-65': [-65, '-', '-66', '-64', '65']; - '-64': [-64, '-', '-65', '-63', '64']; - '-63': [-63, '-', '-64', '-62', '63']; - '-62': [-62, '-', '-63', '-61', '62']; - '-61': [-61, '-', '-62', '-60', '61']; - '-60': [-60, '-', '-61', '-59', '60']; - '-59': [-59, '-', '-60', '-58', '59']; - '-58': [-58, '-', '-59', '-57', '58']; - '-57': [-57, '-', '-58', '-56', '57']; - '-56': [-56, '-', '-57', '-55', '56']; - '-55': [-55, '-', '-56', '-54', '55']; - '-54': [-54, '-', '-55', '-53', '54']; - '-53': [-53, '-', '-54', '-52', '53']; - '-52': [-52, '-', '-53', '-51', '52']; - '-51': [-51, '-', '-52', '-50', '51']; - '-50': [-50, '-', '-51', '-49', '50']; - '-49': [-49, '-', '-50', '-48', '49']; - '-48': [-48, '-', '-49', '-47', '48']; - '-47': [-47, '-', '-48', '-46', '47']; - '-46': [-46, '-', '-47', '-45', '46']; - '-45': [-45, '-', '-46', '-44', '45']; - '-44': [-44, '-', '-45', '-43', '44']; - '-43': [-43, '-', '-44', '-42', '43']; - '-42': [-42, '-', '-43', '-41', '42']; - '-41': [-41, '-', '-42', '-40', '41']; - '-40': [-40, '-', '-41', '-39', '40']; - '-39': [-39, '-', '-40', '-38', '39']; - '-38': [-38, '-', '-39', '-37', '38']; - '-37': [-37, '-', '-38', '-36', '37']; - '-36': [-36, '-', '-37', '-35', '36']; - '-35': [-35, '-', '-36', '-34', '35']; - '-34': [-34, '-', '-35', '-33', '34']; - '-33': [-33, '-', '-34', '-32', '33']; - '-32': [-32, '-', '-33', '-31', '32']; - '-31': [-31, '-', '-32', '-30', '31']; - '-30': [-30, '-', '-31', '-29', '30']; - '-29': [-29, '-', '-30', '-28', '29']; - '-28': [-28, '-', '-29', '-27', '28']; - '-27': [-27, '-', '-28', '-26', '27']; - '-26': [-26, '-', '-27', '-25', '26']; - '-25': [-25, '-', '-26', '-24', '25']; - '-24': [-24, '-', '-25', '-23', '24']; - '-23': [-23, '-', '-24', '-22', '23']; - '-22': [-22, '-', '-23', '-21', '22']; - '-21': [-21, '-', '-22', '-20', '21']; - '-20': [-20, '-', '-21', '-19', '20']; - '-19': [-19, '-', '-20', '-18', '19']; - '-18': [-18, '-', '-19', '-17', '18']; - '-17': [-17, '-', '-18', '-16', '17']; - '-16': [-16, '-', '-17', '-15', '16']; - '-15': [-15, '-', '-16', '-14', '15']; - '-14': [-14, '-', '-15', '-13', '14']; - '-13': [-13, '-', '-14', '-12', '13']; - '-12': [-12, '-', '-13', '-11', '12']; - '-11': [-11, '-', '-12', '-10', '11']; - '-10': [-10, '-', '-11', '-9', '10']; - '-9': [-9, '-', '-10', '-8', '9']; - '-8': [-8, '-', '-9', '-7', '8']; - '-7': [-7, '-', '-8', '-6', '7']; - '-6': [-6, '-', '-7', '-5', '6']; - '-5': [-5, '-', '-6', '-4', '5']; - '-4': [-4, '-', '-5', '-3', '4']; - '-3': [-3, '-', '-4', '-2', '3']; - '-2': [-2, '-', '-3', '-1', '2']; - '-1': [-1, '-', '-2', '0', '1']; - '0': [0, '0', '-1', '1', '0']; - '1': [1, '+', '0', '2', '-1']; - '2': [2, '+', '1', '3', '-2']; - '3': [3, '+', '2', '4', '-3']; - '4': [4, '+', '3', '5', '-4']; - '5': [5, '+', '4', '6', '-5']; - '6': [6, '+', '5', '7', '-6']; - '7': [7, '+', '6', '8', '-7']; - '8': [8, '+', '7', '9', '-8']; - '9': [9, '+', '8', '10', '-9']; - '10': [10, '+', '9', '11', '-10']; - '11': [11, '+', '10', '12', '-11']; - '12': [12, '+', '11', '13', '-12']; - '13': [13, '+', '12', '14', '-13']; - '14': [14, '+', '13', '15', '-14']; - '15': [15, '+', '14', '16', '-15']; - '16': [16, '+', '15', '17', '-16']; - '17': [17, '+', '16', '18', '-17']; - '18': [18, '+', '17', '19', '-18']; - '19': [19, '+', '18', '20', '-19']; - '20': [20, '+', '19', '21', '-20']; - '21': [21, '+', '20', '22', '-21']; - '22': [22, '+', '21', '23', '-22']; - '23': [23, '+', '22', '24', '-23']; - '24': [24, '+', '23', '25', '-24']; - '25': [25, '+', '24', '26', '-25']; - '26': [26, '+', '25', '27', '-26']; - '27': [27, '+', '26', '28', '-27']; - '28': [28, '+', '27', '29', '-28']; - '29': [29, '+', '28', '30', '-29']; - '30': [30, '+', '29', '31', '-30']; - '31': [31, '+', '30', '32', '-31']; - '32': [32, '+', '31', '33', '-32']; - '33': [33, '+', '32', '34', '-33']; - '34': [34, '+', '33', '35', '-34']; - '35': [35, '+', '34', '36', '-35']; - '36': [36, '+', '35', '37', '-36']; - '37': [37, '+', '36', '38', '-37']; - '38': [38, '+', '37', '39', '-38']; - '39': [39, '+', '38', '40', '-39']; - '40': [40, '+', '39', '41', '-40']; - '41': [41, '+', '40', '42', '-41']; - '42': [42, '+', '41', '43', '-42']; - '43': [43, '+', '42', '44', '-43']; - '44': [44, '+', '43', '45', '-44']; - '45': [45, '+', '44', '46', '-45']; - '46': [46, '+', '45', '47', '-46']; - '47': [47, '+', '46', '48', '-47']; - '48': [48, '+', '47', '49', '-48']; - '49': [49, '+', '48', '50', '-49']; - '50': [50, '+', '49', '51', '-50']; - '51': [51, '+', '50', '52', '-51']; - '52': [52, '+', '51', '53', '-52']; - '53': [53, '+', '52', '54', '-53']; - '54': [54, '+', '53', '55', '-54']; - '55': [55, '+', '54', '56', '-55']; - '56': [56, '+', '55', '57', '-56']; - '57': [57, '+', '56', '58', '-57']; - '58': [58, '+', '57', '59', '-58']; - '59': [59, '+', '58', '60', '-59']; - '60': [60, '+', '59', '61', '-60']; - '61': [61, '+', '60', '62', '-61']; - '62': [62, '+', '61', '63', '-62']; - '63': [63, '+', '62', '64', '-63']; - '64': [64, '+', '63', '65', '-64']; - '65': [65, '+', '64', '66', '-65']; - '66': [66, '+', '65', '67', '-66']; - '67': [67, '+', '66', '68', '-67']; - '68': [68, '+', '67', '69', '-68']; - '69': [69, '+', '68', '70', '-69']; - '70': [70, '+', '69', '71', '-70']; - '71': [71, '+', '70', '72', '-71']; - '72': [72, '+', '71', '73', '-72']; - '73': [73, '+', '72', '74', '-73']; - '74': [74, '+', '73', '75', '-74']; - '75': [75, '+', '74', '76', '-75']; - '76': [76, '+', '75', '77', '-76']; - '77': [77, '+', '76', '78', '-77']; - '78': [78, '+', '77', '79', '-78']; - '79': [79, '+', '78', '80', '-79']; - '80': [80, '+', '79', '81', '-80']; - '81': [81, '+', '80', '82', '-81']; - '82': [82, '+', '81', '83', '-82']; - '83': [83, '+', '82', '84', '-83']; - '84': [84, '+', '83', '85', '-84']; - '85': [85, '+', '84', '86', '-85']; - '86': [86, '+', '85', '87', '-86']; - '87': [87, '+', '86', '88', '-87']; - '88': [88, '+', '87', '89', '-88']; - '89': [89, '+', '88', '90', '-89']; - '90': [90, '+', '89', '91', '-90']; - '91': [91, '+', '90', '92', '-91']; - '92': [92, '+', '91', '93', '-92']; - '93': [93, '+', '92', '94', '-93']; - '94': [94, '+', '93', '95', '-94']; - '95': [95, '+', '94', '96', '-95']; - '96': [96, '+', '95', '97', '-96']; - '97': [97, '+', '96', '98', '-97']; - '98': [98, '+', '97', '99', '-98']; - '99': [99, '+', '98', '100', '-99']; - '100': [100, '+', '99', '__', '-100']; -}; -/** - * Transform a number into an [[Iteration]] - * (to use [[Prev]], [[Next]], & [[Pos]]) - * @param N to transform - * @returns [[Iteration]] - * @example - * ```ts - * type i = IterationOf<0> // ["-1", "1", "0", 0, "0"] - * - * type next = Next // ["0", "2", "1", 1, "+"] - * type prev = Prev // ["-2", "0", "-1", -1, "-"] - * - * type nnext = Pos // +1 - * type nprev = Pos // -1 - * ``` - */ -export type IterationOf = `${N}` extends keyof IterationMap ? IterationMap[`${N}`] : IterationMap['__']; -/** - * Get the position of `I` (**number**) - * @param I to query - * @returns `number` - * @example - * ```ts - * type i = IterationOf<'20'> - * - * type test0 = Pos // 20 - * type test1 = Pos> // 21 - * ``` - */ -export type Pos = I[0]; -/** - * Move `I`'s position forward - * @param I to move - * @returns [[Iteration]] - * @example - * ```ts - * type i = IterationOf<'20'> - * - * type test0 = Pos // 20 - * type test1 = Pos> // 21 - * ``` - */ -export type Next = IterationMap[I[3]]; +/** + * An entry of `IterationMap` + */ +export type Iteration = [ + value: number, + sign: '-' | '0' | '+', + prev: keyof IterationMap, + next: keyof IterationMap, + oppo: keyof IterationMap +]; +export type IterationMap = { + '__': [number, '-' | '0' | '+', '__', '__', '__']; + '-100': [-100, '-', '__', '-99', '100']; + '-99': [-99, '-', '-100', '-98', '99']; + '-98': [-98, '-', '-99', '-97', '98']; + '-97': [-97, '-', '-98', '-96', '97']; + '-96': [-96, '-', '-97', '-95', '96']; + '-95': [-95, '-', '-96', '-94', '95']; + '-94': [-94, '-', '-95', '-93', '94']; + '-93': [-93, '-', '-94', '-92', '93']; + '-92': [-92, '-', '-93', '-91', '92']; + '-91': [-91, '-', '-92', '-90', '91']; + '-90': [-90, '-', '-91', '-89', '90']; + '-89': [-89, '-', '-90', '-88', '89']; + '-88': [-88, '-', '-89', '-87', '88']; + '-87': [-87, '-', '-88', '-86', '87']; + '-86': [-86, '-', '-87', '-85', '86']; + '-85': [-85, '-', '-86', '-84', '85']; + '-84': [-84, '-', '-85', '-83', '84']; + '-83': [-83, '-', '-84', '-82', '83']; + '-82': [-82, '-', '-83', '-81', '82']; + '-81': [-81, '-', '-82', '-80', '81']; + '-80': [-80, '-', '-81', '-79', '80']; + '-79': [-79, '-', '-80', '-78', '79']; + '-78': [-78, '-', '-79', '-77', '78']; + '-77': [-77, '-', '-78', '-76', '77']; + '-76': [-76, '-', '-77', '-75', '76']; + '-75': [-75, '-', '-76', '-74', '75']; + '-74': [-74, '-', '-75', '-73', '74']; + '-73': [-73, '-', '-74', '-72', '73']; + '-72': [-72, '-', '-73', '-71', '72']; + '-71': [-71, '-', '-72', '-70', '71']; + '-70': [-70, '-', '-71', '-69', '70']; + '-69': [-69, '-', '-70', '-68', '69']; + '-68': [-68, '-', '-69', '-67', '68']; + '-67': [-67, '-', '-68', '-66', '67']; + '-66': [-66, '-', '-67', '-65', '66']; + '-65': [-65, '-', '-66', '-64', '65']; + '-64': [-64, '-', '-65', '-63', '64']; + '-63': [-63, '-', '-64', '-62', '63']; + '-62': [-62, '-', '-63', '-61', '62']; + '-61': [-61, '-', '-62', '-60', '61']; + '-60': [-60, '-', '-61', '-59', '60']; + '-59': [-59, '-', '-60', '-58', '59']; + '-58': [-58, '-', '-59', '-57', '58']; + '-57': [-57, '-', '-58', '-56', '57']; + '-56': [-56, '-', '-57', '-55', '56']; + '-55': [-55, '-', '-56', '-54', '55']; + '-54': [-54, '-', '-55', '-53', '54']; + '-53': [-53, '-', '-54', '-52', '53']; + '-52': [-52, '-', '-53', '-51', '52']; + '-51': [-51, '-', '-52', '-50', '51']; + '-50': [-50, '-', '-51', '-49', '50']; + '-49': [-49, '-', '-50', '-48', '49']; + '-48': [-48, '-', '-49', '-47', '48']; + '-47': [-47, '-', '-48', '-46', '47']; + '-46': [-46, '-', '-47', '-45', '46']; + '-45': [-45, '-', '-46', '-44', '45']; + '-44': [-44, '-', '-45', '-43', '44']; + '-43': [-43, '-', '-44', '-42', '43']; + '-42': [-42, '-', '-43', '-41', '42']; + '-41': [-41, '-', '-42', '-40', '41']; + '-40': [-40, '-', '-41', '-39', '40']; + '-39': [-39, '-', '-40', '-38', '39']; + '-38': [-38, '-', '-39', '-37', '38']; + '-37': [-37, '-', '-38', '-36', '37']; + '-36': [-36, '-', '-37', '-35', '36']; + '-35': [-35, '-', '-36', '-34', '35']; + '-34': [-34, '-', '-35', '-33', '34']; + '-33': [-33, '-', '-34', '-32', '33']; + '-32': [-32, '-', '-33', '-31', '32']; + '-31': [-31, '-', '-32', '-30', '31']; + '-30': [-30, '-', '-31', '-29', '30']; + '-29': [-29, '-', '-30', '-28', '29']; + '-28': [-28, '-', '-29', '-27', '28']; + '-27': [-27, '-', '-28', '-26', '27']; + '-26': [-26, '-', '-27', '-25', '26']; + '-25': [-25, '-', '-26', '-24', '25']; + '-24': [-24, '-', '-25', '-23', '24']; + '-23': [-23, '-', '-24', '-22', '23']; + '-22': [-22, '-', '-23', '-21', '22']; + '-21': [-21, '-', '-22', '-20', '21']; + '-20': [-20, '-', '-21', '-19', '20']; + '-19': [-19, '-', '-20', '-18', '19']; + '-18': [-18, '-', '-19', '-17', '18']; + '-17': [-17, '-', '-18', '-16', '17']; + '-16': [-16, '-', '-17', '-15', '16']; + '-15': [-15, '-', '-16', '-14', '15']; + '-14': [-14, '-', '-15', '-13', '14']; + '-13': [-13, '-', '-14', '-12', '13']; + '-12': [-12, '-', '-13', '-11', '12']; + '-11': [-11, '-', '-12', '-10', '11']; + '-10': [-10, '-', '-11', '-9', '10']; + '-9': [-9, '-', '-10', '-8', '9']; + '-8': [-8, '-', '-9', '-7', '8']; + '-7': [-7, '-', '-8', '-6', '7']; + '-6': [-6, '-', '-7', '-5', '6']; + '-5': [-5, '-', '-6', '-4', '5']; + '-4': [-4, '-', '-5', '-3', '4']; + '-3': [-3, '-', '-4', '-2', '3']; + '-2': [-2, '-', '-3', '-1', '2']; + '-1': [-1, '-', '-2', '0', '1']; + '0': [0, '0', '-1', '1', '0']; + '1': [1, '+', '0', '2', '-1']; + '2': [2, '+', '1', '3', '-2']; + '3': [3, '+', '2', '4', '-3']; + '4': [4, '+', '3', '5', '-4']; + '5': [5, '+', '4', '6', '-5']; + '6': [6, '+', '5', '7', '-6']; + '7': [7, '+', '6', '8', '-7']; + '8': [8, '+', '7', '9', '-8']; + '9': [9, '+', '8', '10', '-9']; + '10': [10, '+', '9', '11', '-10']; + '11': [11, '+', '10', '12', '-11']; + '12': [12, '+', '11', '13', '-12']; + '13': [13, '+', '12', '14', '-13']; + '14': [14, '+', '13', '15', '-14']; + '15': [15, '+', '14', '16', '-15']; + '16': [16, '+', '15', '17', '-16']; + '17': [17, '+', '16', '18', '-17']; + '18': [18, '+', '17', '19', '-18']; + '19': [19, '+', '18', '20', '-19']; + '20': [20, '+', '19', '21', '-20']; + '21': [21, '+', '20', '22', '-21']; + '22': [22, '+', '21', '23', '-22']; + '23': [23, '+', '22', '24', '-23']; + '24': [24, '+', '23', '25', '-24']; + '25': [25, '+', '24', '26', '-25']; + '26': [26, '+', '25', '27', '-26']; + '27': [27, '+', '26', '28', '-27']; + '28': [28, '+', '27', '29', '-28']; + '29': [29, '+', '28', '30', '-29']; + '30': [30, '+', '29', '31', '-30']; + '31': [31, '+', '30', '32', '-31']; + '32': [32, '+', '31', '33', '-32']; + '33': [33, '+', '32', '34', '-33']; + '34': [34, '+', '33', '35', '-34']; + '35': [35, '+', '34', '36', '-35']; + '36': [36, '+', '35', '37', '-36']; + '37': [37, '+', '36', '38', '-37']; + '38': [38, '+', '37', '39', '-38']; + '39': [39, '+', '38', '40', '-39']; + '40': [40, '+', '39', '41', '-40']; + '41': [41, '+', '40', '42', '-41']; + '42': [42, '+', '41', '43', '-42']; + '43': [43, '+', '42', '44', '-43']; + '44': [44, '+', '43', '45', '-44']; + '45': [45, '+', '44', '46', '-45']; + '46': [46, '+', '45', '47', '-46']; + '47': [47, '+', '46', '48', '-47']; + '48': [48, '+', '47', '49', '-48']; + '49': [49, '+', '48', '50', '-49']; + '50': [50, '+', '49', '51', '-50']; + '51': [51, '+', '50', '52', '-51']; + '52': [52, '+', '51', '53', '-52']; + '53': [53, '+', '52', '54', '-53']; + '54': [54, '+', '53', '55', '-54']; + '55': [55, '+', '54', '56', '-55']; + '56': [56, '+', '55', '57', '-56']; + '57': [57, '+', '56', '58', '-57']; + '58': [58, '+', '57', '59', '-58']; + '59': [59, '+', '58', '60', '-59']; + '60': [60, '+', '59', '61', '-60']; + '61': [61, '+', '60', '62', '-61']; + '62': [62, '+', '61', '63', '-62']; + '63': [63, '+', '62', '64', '-63']; + '64': [64, '+', '63', '65', '-64']; + '65': [65, '+', '64', '66', '-65']; + '66': [66, '+', '65', '67', '-66']; + '67': [67, '+', '66', '68', '-67']; + '68': [68, '+', '67', '69', '-68']; + '69': [69, '+', '68', '70', '-69']; + '70': [70, '+', '69', '71', '-70']; + '71': [71, '+', '70', '72', '-71']; + '72': [72, '+', '71', '73', '-72']; + '73': [73, '+', '72', '74', '-73']; + '74': [74, '+', '73', '75', '-74']; + '75': [75, '+', '74', '76', '-75']; + '76': [76, '+', '75', '77', '-76']; + '77': [77, '+', '76', '78', '-77']; + '78': [78, '+', '77', '79', '-78']; + '79': [79, '+', '78', '80', '-79']; + '80': [80, '+', '79', '81', '-80']; + '81': [81, '+', '80', '82', '-81']; + '82': [82, '+', '81', '83', '-82']; + '83': [83, '+', '82', '84', '-83']; + '84': [84, '+', '83', '85', '-84']; + '85': [85, '+', '84', '86', '-85']; + '86': [86, '+', '85', '87', '-86']; + '87': [87, '+', '86', '88', '-87']; + '88': [88, '+', '87', '89', '-88']; + '89': [89, '+', '88', '90', '-89']; + '90': [90, '+', '89', '91', '-90']; + '91': [91, '+', '90', '92', '-91']; + '92': [92, '+', '91', '93', '-92']; + '93': [93, '+', '92', '94', '-93']; + '94': [94, '+', '93', '95', '-94']; + '95': [95, '+', '94', '96', '-95']; + '96': [96, '+', '95', '97', '-96']; + '97': [97, '+', '96', '98', '-97']; + '98': [98, '+', '97', '99', '-98']; + '99': [99, '+', '98', '100', '-99']; + '100': [100, '+', '99', '__', '-100']; +}; +/** + * Transform a number into an [[Iteration]] + * (to use [[Prev]], [[Next]], & [[Pos]]) + * @param N to transform + * @returns [[Iteration]] + * @example + * ```ts + * type i = IterationOf<0> // ["-1", "1", "0", 0, "0"] + * + * type next = Next // ["0", "2", "1", 1, "+"] + * type prev = Prev // ["-2", "0", "-1", -1, "-"] + * + * type nnext = Pos // +1 + * type nprev = Pos // -1 + * ``` + */ +export type IterationOf = `${N}` extends keyof IterationMap ? IterationMap[`${N}`] : IterationMap['__']; +/** + * Get the position of `I` (**number**) + * @param I to query + * @returns `number` + * @example + * ```ts + * type i = IterationOf<'20'> + * + * type test0 = Pos // 20 + * type test1 = Pos> // 21 + * ``` + */ +export type Pos = I[0]; +/** + * Move `I`'s position forward + * @param I to move + * @returns [[Iteration]] + * @example + * ```ts + * type i = IterationOf<'20'> + * + * type test0 = Pos // 20 + * type test1 = Pos> // 21 + * ``` + */ +export type Next = IterationMap[I[3]]; diff --git a/dist/types/typeUtils/List.d.ts b/dist/types/typeUtils/List.d.ts index 26ac007..fe2e407 100644 --- a/dist/types/typeUtils/List.d.ts +++ b/dist/types/typeUtils/List.d.ts @@ -1,29 +1,29 @@ -/** - * A [[List]] - * @param T its type - * @returns [[List]] - * @example - * ```ts - * type list0 = [1, 2, 3] - * type list1 = number[] - * ``` - */ -export type List = readonly T[]; -/** - * Get the length of `L` - * @param L to get length - * @returns [[String]] or `number` - * @example - * ```ts - * ``` - */ -export type Length = L['length']; -/** - * Return the last item out of a [[List]] - * @param L - * @returns [[List]] - * @example - * ```ts - * ``` - */ -export type Pop = L extends readonly [] ? never : L extends [...unknown[], infer Last] ? Last : L extends (infer T)[] ? T : never; +/** + * A [[List]] + * @param T its type + * @returns [[List]] + * @example + * ```ts + * type list0 = [1, 2, 3] + * type list1 = number[] + * ``` + */ +export type List = readonly T[]; +/** + * Get the length of `L` + * @param L to get length + * @returns [[String]] or `number` + * @example + * ```ts + * ``` + */ +export type Length = L['length']; +/** + * Return the last item out of a [[List]] + * @param L + * @returns [[List]] + * @example + * ```ts + * ``` + */ +export type Pop = L extends readonly [] ? never : L extends [...unknown[], infer Last] ? Last : L extends (infer T)[] ? T : never; diff --git a/dist/types/typeUtils/MergeDeep.d.ts b/dist/types/typeUtils/MergeDeep.d.ts index 763912f..77774b0 100644 --- a/dist/types/typeUtils/MergeDeep.d.ts +++ b/dist/types/typeUtils/MergeDeep.d.ts @@ -1,57 +1,57 @@ -/** - * Get the keys of `O` that are optional - * @param O - * @returns [[Key]] - * @example - * ```ts - * ``` - */ -type OptionalKeys = O extends unknown ? { - [K in keyof O]-?: {} extends Pick ? K : never; -}[keyof O] : never; -/** - * Get the keys of `O` that are required - * @param O - * @returns [[Key]] - * @example - * ```ts - * ``` - */ -type RequiredKeys = O extends unknown ? { - [K in keyof O]-?: {} extends Pick ? never : K; -}[keyof O] : never; -type MergeObjectDeeply, O1 extends Record> = { - [K in keyof (O & O1)]: K extends RequiredKeys ? MergeObjectsOrReturnFallback : K extends OptionalKeys ? K extends OptionalKeys ? MergeObjectsOrReturnFallback, Exclude, Exclude | Exclude> : K extends RequiredKeys ? Exclude extends O[K] ? O[K] : MergeObjectsOrReturnFallback, O[K] | Exclude> : O1[K] : O[K]; -}; -type MergeObjectsOrReturnFallback = O extends Record ? O1 extends Record ? MergeObjectDeeply : Fallback : Fallback; -/** - * Accurately merge the fields of `O` with the ones of `O1`. It is - * equivalent to the spread operator in JavaScript. [[Union]]s and [[Optional]] - * fields will be handled gracefully. - * - * (⚠️ needs `--strictNullChecks` enabled) - * @param O to complete - * @param O1 to copy from - * @returns [[Object]] - * @example - * ```ts - * import { PrettyPrint } from './PrettyPrint' - * - * type A1 = { a: number; b?: number; d?: number; e?: number; x: string; y?: number; z: string; } // prettier-ignore - * type A2 = { a?: number; c?: number; d?: number; e: number; x: number | undefined; y?: string; z?: number; } // prettier-ignore - * - * type Result = PrettyPrint> - * { - * a: number; - * b?: number | undefined; - * c?: number | undefined; - * d?: number | undefined; - * e: number; - * x: number | undefined; - * y?: string | number | undefined; - * z: string | number; - * } - * ``` - */ -export type MergeDeep, O1 extends Record> = O extends unknown ? (O1 extends unknown ? MergeObjectDeeply : never) : never; -export {}; +/** + * Get the keys of `O` that are optional + * @param O + * @returns [[Key]] + * @example + * ```ts + * ``` + */ +type OptionalKeys = O extends unknown ? { + [K in keyof O]-?: {} extends Pick ? K : never; +}[keyof O] : never; +/** + * Get the keys of `O` that are required + * @param O + * @returns [[Key]] + * @example + * ```ts + * ``` + */ +type RequiredKeys = O extends unknown ? { + [K in keyof O]-?: {} extends Pick ? never : K; +}[keyof O] : never; +type MergeObjectDeeply, O1 extends Record> = { + [K in keyof (O & O1)]: K extends RequiredKeys ? MergeObjectsOrReturnFallback : K extends OptionalKeys ? K extends OptionalKeys ? MergeObjectsOrReturnFallback, Exclude, Exclude | Exclude> : K extends RequiredKeys ? Exclude extends O[K] ? O[K] : MergeObjectsOrReturnFallback, O[K] | Exclude> : O1[K] : O[K]; +}; +type MergeObjectsOrReturnFallback = O extends Record ? O1 extends Record ? MergeObjectDeeply : Fallback : Fallback; +/** + * Accurately merge the fields of `O` with the ones of `O1`. It is + * equivalent to the spread operator in JavaScript. [[Union]]s and [[Optional]] + * fields will be handled gracefully. + * + * (⚠️ needs `--strictNullChecks` enabled) + * @param O to complete + * @param O1 to copy from + * @returns [[Object]] + * @example + * ```ts + * import { PrettyPrint } from './PrettyPrint' + * + * type A1 = { a: number; b?: number; d?: number; e?: number; x: string; y?: number; z: string; } // prettier-ignore + * type A2 = { a?: number; c?: number; d?: number; e: number; x: number | undefined; y?: string; z?: number; } // prettier-ignore + * + * type Result = PrettyPrint> + * { + * a: number; + * b?: number | undefined; + * c?: number | undefined; + * d?: number | undefined; + * e: number; + * x: number | undefined; + * y?: string | number | undefined; + * z: string | number; + * } + * ``` + */ +export type MergeDeep, O1 extends Record> = O extends unknown ? (O1 extends unknown ? MergeObjectDeeply : never) : never; +export {}; diff --git a/dist/types/typeUtils/PrettyPrint.d.ts b/dist/types/typeUtils/PrettyPrint.d.ts index 2b5443d..2b46bf4 100644 --- a/dist/types/typeUtils/PrettyPrint.d.ts +++ b/dist/types/typeUtils/PrettyPrint.d.ts @@ -1,6 +1,6 @@ -type Has = [U1] extends [U] ? 1 : 0; -type If = B extends 1 ? Then : Else; -export type PrettyPrint = If, A, A extends Record ? { - [K in keyof A]: PrettyPrint; -} & unknown : A>; -export {}; +type Has = [U1] extends [U] ? 1 : 0; +type If = B extends 1 ? Then : Else; +export type PrettyPrint = If, A, A extends Record ? { + [K in keyof A]: PrettyPrint; +} & unknown : A>; +export {}; diff --git a/package-lock.json b/package-lock.json index bb7bb2b..3ab0ce2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,18 +12,18 @@ "is-what": "^4.1.8" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.45.0", - "@typescript-eslint/parser": "^5.45.0", + "@typescript-eslint/eslint-plugin": "^5.59.0", + "@typescript-eslint/parser": "^5.59.0", "del-cli": "^5.0.0", - "eslint": "^8.28.0", - "eslint-config-prettier": "^8.5.0", + "eslint": "^8.39.0", + "eslint-config-prettier": "^8.8.0", "eslint-plugin-tree-shaking": "^1.10.0", - "np": "^7.6.2", - "prettier": "^2.8.0", - "rollup": "^3.5.0", + "np": "^7.7.0", + "prettier": "^2.8.8", + "rollup": "^3.21.0", "rollup-plugin-typescript2": "^0.34.1", - "typescript": "^4.9.3", - "vitest": "^0.25.3" + "typescript": "^5.0.4", + "vitest": "^0.30.1" }, "engines": { "node": ">=12.13" @@ -121,16 +121,40 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", + "espree": "^9.5.1", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -144,10 +168,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -177,6 +210,12 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -291,9 +330,9 @@ } }, "node_modules/@types/chai": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz", - "integrity": "sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", "dev": true }, "node_modules/@types/chai-subset": { @@ -366,18 +405,19 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", - "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz", + "integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/type-utils": "5.45.0", - "@typescript-eslint/utils": "5.45.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/type-utils": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, @@ -399,14 +439,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", - "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", + "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "debug": "^4.3.4" }, "engines": { @@ -426,13 +466,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", - "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", + "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/visitor-keys": "5.45.0" + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -443,13 +483,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", - "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", + "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.45.0", - "@typescript-eslint/utils": "5.45.0", + "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -470,9 +510,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", - "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -483,13 +523,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", - "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/visitor-keys": "5.45.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -510,18 +550,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", - "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", + "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", "dev": true, "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" }, "engines": { @@ -536,12 +576,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", - "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/types": "5.59.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -552,10 +592,91 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@vitest/expect": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.30.1.tgz", + "integrity": "sha512-c3kbEtN8XXJSeN81iDGq29bUzSjQhjES2WR3aColsS4lPGbivwLtas4DNUe0jD9gg/FYGIteqOenfU95EFituw==", + "dev": true, + "dependencies": { + "@vitest/spy": "0.30.1", + "@vitest/utils": "0.30.1", + "chai": "^4.3.7" + } + }, + "node_modules/@vitest/runner": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.30.1.tgz", + "integrity": "sha512-W62kT/8i0TF1UBCNMRtRMOBWJKRnNyv9RrjIgdUryEe0wNpGZvvwPDLuzYdxvgSckzjp54DSpv1xUbv4BQ0qVA==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.30.1", + "concordance": "^5.0.4", + "p-limit": "^4.0.0", + "pathe": "^1.1.0" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.30.1.tgz", + "integrity": "sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.0", + "pathe": "^1.1.0", + "pretty-format": "^27.5.1" + } + }, + "node_modules/@vitest/spy": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.30.1.tgz", + "integrity": "sha512-YfJeIf37GvTZe04ZKxzJfnNNuNSmTEGnla2OdL60C8od16f3zOfv9q9K0nNii0NfjDJRt/CVN/POuY5/zTS+BA==", + "dev": true, + "dependencies": { + "tinyspy": "^2.1.0" + } + }, + "node_modules/@vitest/utils": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.30.1.tgz", + "integrity": "sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==", + "dev": true, + "dependencies": { + "concordance": "^5.0.4", + "loupe": "^2.3.6", + "pretty-format": "^27.5.1" + } + }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -706,6 +827,18 @@ "node": ">=8" } }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/any-observable": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.5.1.tgz", @@ -765,6 +898,12 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, "node_modules/boxen": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.0.tgz", @@ -889,6 +1028,15 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/cacheable-lookup": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", @@ -971,14 +1119,14 @@ } }, "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -1154,6 +1302,25 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -1228,6 +1395,18 @@ "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", "dev": true }, + "node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1289,15 +1468,15 @@ } }, "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "dependencies": { "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.12" + "node": ">=6" } }, "node_modules/deep-extend": { @@ -2139,13 +2318,16 @@ } }, "node_modules/eslint": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", - "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -2154,17 +2336,16 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", @@ -2179,7 +2360,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -2195,9 +2375,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -2228,40 +2408,16 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/escape-string-regexp": { @@ -2277,9 +2433,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -2287,6 +2443,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/estraverse": { @@ -2311,14 +2470,14 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2328,9 +2487,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -2340,9 +2499,9 @@ } }, "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -2436,6 +2595,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -2688,9 +2853,9 @@ } }, "node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3516,6 +3681,15 @@ "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", "dev": true }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -3558,6 +3732,12 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -3967,9 +4147,9 @@ } }, "node_modules/local-pkg": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.2.tgz", - "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", "dev": true, "engines": { "node": ">=14" @@ -4099,9 +4279,9 @@ } }, "node_modules/loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "dependencies": { "get-func-name": "^2.0.0" @@ -4128,6 +4308,18 @@ "node": ">=10" } }, + "node_modules/magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -4173,6 +4365,18 @@ "node": ">=8" } }, + "node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/meow": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", @@ -4309,6 +4513,18 @@ "node": ">=0.10.0" } }, + "node_modules/mlly": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz", + "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2", + "pathe": "^1.1.0", + "pkg-types": "^1.0.2", + "ufo": "^1.1.1" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4403,9 +4619,9 @@ } }, "node_modules/np": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/np/-/np-7.6.2.tgz", - "integrity": "sha512-gExmKGKixh7ITc4Q+Lv7nfCby0CVKvzri9zN8970oKD8976T4L5dw8QWUtMcXcIjhFF6h5lbvztao/NurDbmxQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/np/-/np-7.7.0.tgz", + "integrity": "sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q==", "dev": true, "dependencies": { "@samverschueren/stream-to-observable": "^0.3.1", @@ -5104,6 +5320,12 @@ "node": ">=8" } }, + "node_modules/pathe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", + "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", + "dev": true + }, "node_modules/pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -5189,6 +5411,17 @@ "node": ">=8" } }, + "node_modules/pkg-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz", + "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.1.1", + "pathe": "^1.1.0" + } + }, "node_modules/postcss": { "version": "8.4.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", @@ -5232,9 +5465,9 @@ } }, "node_modules/prettier": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", - "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -5246,6 +5479,20 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -5257,9 +5504,9 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -5339,6 +5586,12 @@ "node": ">=0.10.0" } }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -5466,18 +5719,6 @@ "node": ">=8" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -5597,9 +5838,9 @@ } }, "node_modules/rollup": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.5.0.tgz", - "integrity": "sha512-TYu2L+TGhmNsXCtByont89u+ATQLcDy6A+++PwLXYunRtOm7XnaD+65s1pvewaOxMYR0eOkMXn9/i0saBxxpnQ==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.0.tgz", + "integrity": "sha512-ANPhVcyeHvYdQMUyCbczy33nbLzI7RzrBje4uvNiTDJGIMtlKoOStmympwr9OtS1LZxiDmE2wvxHyVhoLtf1KQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -5751,6 +5992,12 @@ "node": ">=8" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -5828,6 +6075,18 @@ "node": "*" } }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz", + "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==", + "dev": true + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -5888,12 +6147,12 @@ } }, "node_modules/strip-literal": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-0.4.2.tgz", - "integrity": "sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", + "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", "dev": true, "dependencies": { - "acorn": "^8.8.0" + "acorn": "^8.8.2" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -5973,25 +6232,34 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/tinybench": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz", - "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz", + "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==", "dev": true }, "node_modules/tinypool": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz", - "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz", + "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==", "dev": true, "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz", - "integrity": "sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.0.tgz", + "integrity": "sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==", "dev": true, "engines": { "node": ">=14.0.0" @@ -6106,18 +6374,24 @@ } }, "node_modules/typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=12.20" } }, + "node_modules/ufo": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz", + "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==", + "dev": true + }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -6297,6 +6571,29 @@ } } }, + "node_modules/vite-node": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.30.1.tgz", + "integrity": "sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.2.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/vite/node_modules/rollup": { "version": "2.77.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", @@ -6313,31 +6610,43 @@ } }, "node_modules/vitest": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.25.3.tgz", - "integrity": "sha512-/UzHfXIKsELZhL7OaM2xFlRF8HRZgAHtPctacvNK8H4vOcbJJAMEgbWNGSAK7Y9b1NBe5SeM7VTuz2RsTHFJJA==", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.30.1.tgz", + "integrity": "sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==", "dev": true, "dependencies": { - "@types/chai": "^4.3.3", + "@types/chai": "^4.3.4", "@types/chai-subset": "^1.3.3", "@types/node": "*", - "acorn": "^8.8.0", + "@vitest/expect": "0.30.1", + "@vitest/runner": "0.30.1", + "@vitest/snapshot": "0.30.1", + "@vitest/spy": "0.30.1", + "@vitest/utils": "0.30.1", + "acorn": "^8.8.2", "acorn-walk": "^8.2.0", - "chai": "^4.3.6", + "cac": "^6.7.14", + "chai": "^4.3.7", + "concordance": "^5.0.4", "debug": "^4.3.4", - "local-pkg": "^0.4.2", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", "source-map": "^0.6.1", - "strip-literal": "^0.4.2", - "tinybench": "^2.3.1", - "tinypool": "^0.3.0", - "tinyspy": "^1.0.2", - "vite": "^3.0.0" + "std-env": "^3.3.2", + "strip-literal": "^1.0.1", + "tinybench": "^2.4.0", + "tinypool": "^0.4.0", + "vite": "^3.0.0 || ^4.0.0", + "vite-node": "0.30.1", + "why-is-node-running": "^2.2.2" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": ">=v14.16.0" + "node": ">=v14.18.0" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -6347,7 +6656,10 @@ "@vitest/browser": "*", "@vitest/ui": "*", "happy-dom": "*", - "jsdom": "*" + "jsdom": "*", + "playwright": "*", + "safaridriver": "*", + "webdriverio": "*" }, "peerDependenciesMeta": { "@edge-runtime/vm": { @@ -6364,9 +6676,27 @@ }, "jsdom": { "optional": true + }, + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true } } }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -6382,6 +6712,22 @@ "node": ">= 8" } }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -6594,16 +6940,31 @@ "dev": true, "optional": true }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true + }, "@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", + "espree": "^9.5.1", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -6611,10 +6972,16 @@ "strip-json-comments": "^3.1.1" } }, + "@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true + }, "@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -6634,6 +7001,12 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -6715,9 +7088,9 @@ } }, "@types/chai": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz", - "integrity": "sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", "dev": true }, "@types/chai-subset": { @@ -6790,70 +7163,71 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", - "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz", + "integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/type-utils": "5.45.0", - "@typescript-eslint/utils": "5.45.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/type-utils": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/parser": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", - "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", + "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", - "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", + "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/visitor-keys": "5.45.0" + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0" } }, "@typescript-eslint/type-utils": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", - "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", + "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.45.0", - "@typescript-eslint/utils": "5.45.0", + "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", - "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", - "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/visitor-keys": "5.45.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -6862,35 +7236,106 @@ } }, "@typescript-eslint/utils": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", - "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", + "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", "dev": true, "requires": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", - "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/types": "5.59.0", "eslint-visitor-keys": "^3.3.0" } }, + "@vitest/expect": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.30.1.tgz", + "integrity": "sha512-c3kbEtN8XXJSeN81iDGq29bUzSjQhjES2WR3aColsS4lPGbivwLtas4DNUe0jD9gg/FYGIteqOenfU95EFituw==", + "dev": true, + "requires": { + "@vitest/spy": "0.30.1", + "@vitest/utils": "0.30.1", + "chai": "^4.3.7" + } + }, + "@vitest/runner": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.30.1.tgz", + "integrity": "sha512-W62kT/8i0TF1UBCNMRtRMOBWJKRnNyv9RrjIgdUryEe0wNpGZvvwPDLuzYdxvgSckzjp54DSpv1xUbv4BQ0qVA==", + "dev": true, + "requires": { + "@vitest/utils": "0.30.1", + "concordance": "^5.0.4", + "p-limit": "^4.0.0", + "pathe": "^1.1.0" + }, + "dependencies": { + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } + } + }, + "@vitest/snapshot": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.30.1.tgz", + "integrity": "sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==", + "dev": true, + "requires": { + "magic-string": "^0.30.0", + "pathe": "^1.1.0", + "pretty-format": "^27.5.1" + } + }, + "@vitest/spy": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.30.1.tgz", + "integrity": "sha512-YfJeIf37GvTZe04ZKxzJfnNNuNSmTEGnla2OdL60C8od16f3zOfv9q9K0nNii0NfjDJRt/CVN/POuY5/zTS+BA==", + "dev": true, + "requires": { + "tinyspy": "^2.1.0" + } + }, + "@vitest/utils": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.30.1.tgz", + "integrity": "sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==", + "dev": true, + "requires": { + "concordance": "^5.0.4", + "loupe": "^2.3.6", + "pretty-format": "^27.5.1" + } + }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-jsx": { @@ -7000,6 +7445,12 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, "any-observable": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.5.1.tgz", @@ -7036,6 +7487,12 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, "boxen": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.0.tgz", @@ -7126,6 +7583,12 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, + "cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true + }, "cacheable-lookup": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", @@ -7186,14 +7649,14 @@ } }, "chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -7331,6 +7794,22 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "requires": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + } + }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -7392,6 +7871,15 @@ "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", "dev": true }, + "date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "requires": { + "time-zone": "^1.0.0" + } + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -7435,9 +7923,9 @@ } }, "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -7925,13 +8413,16 @@ "dev": true }, "eslint": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", - "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -7940,17 +8431,16 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", @@ -7965,7 +8455,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -7978,9 +8467,9 @@ "dev": true }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -8005,9 +8494,9 @@ } }, "eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", "dev": true, "requires": {} }, @@ -8027,53 +8516,36 @@ "estraverse": "^4.1.1" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true }, "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" } }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -8147,6 +8619,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -8334,9 +8812,9 @@ } }, "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -8949,6 +9427,12 @@ "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", "dev": true }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8988,6 +9472,12 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -9305,9 +9795,9 @@ } }, "local-pkg": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.2.tgz", - "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", "dev": true }, "locate-path": { @@ -9406,9 +9896,9 @@ } }, "loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "requires": { "get-func-name": "^2.0.0" @@ -9429,6 +9919,15 @@ "yallist": "^4.0.0" } }, + "magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -9461,6 +9960,15 @@ "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", "dev": true }, + "md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "requires": { + "blueimp-md5": "^2.10.0" + } + }, "meow": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", @@ -9562,6 +10070,18 @@ } } }, + "mlly": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz", + "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==", + "dev": true, + "requires": { + "acorn": "^8.8.2", + "pathe": "^1.1.0", + "pkg-types": "^1.0.2", + "ufo": "^1.1.1" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -9639,9 +10159,9 @@ "dev": true }, "np": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/np/-/np-7.6.2.tgz", - "integrity": "sha512-gExmKGKixh7ITc4Q+Lv7nfCby0CVKvzri9zN8970oKD8976T4L5dw8QWUtMcXcIjhFF6h5lbvztao/NurDbmxQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/np/-/np-7.7.0.tgz", + "integrity": "sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q==", "dev": true, "requires": { "@samverschueren/stream-to-observable": "^0.3.1", @@ -10158,6 +10678,12 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, + "pathe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", + "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", + "dev": true + }, "pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -10221,6 +10747,17 @@ } } }, + "pkg-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz", + "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==", + "dev": true, + "requires": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.1.1", + "pathe": "^1.1.0" + } + }, "postcss": { "version": "8.4.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", @@ -10245,11 +10782,22 @@ "dev": true }, "prettier": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", - "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + } + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -10261,9 +10809,9 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "pupa": { @@ -10315,6 +10863,12 @@ } } }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -10416,12 +10970,6 @@ "strip-indent": "^3.0.0" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -10509,9 +11057,9 @@ } }, "rollup": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.5.0.tgz", - "integrity": "sha512-TYu2L+TGhmNsXCtByont89u+ATQLcDy6A+++PwLXYunRtOm7XnaD+65s1pvewaOxMYR0eOkMXn9/i0saBxxpnQ==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.0.tgz", + "integrity": "sha512-ANPhVcyeHvYdQMUyCbczy33nbLzI7RzrBje4uvNiTDJGIMtlKoOStmympwr9OtS1LZxiDmE2wvxHyVhoLtf1KQ==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -10615,6 +11163,12 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -10680,6 +11234,18 @@ "through": "2" } }, + "stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "std-env": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz", + "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==", + "dev": true + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -10722,12 +11288,12 @@ "dev": true }, "strip-literal": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-0.4.2.tgz", - "integrity": "sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", + "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", "dev": true, "requires": { - "acorn": "^8.8.0" + "acorn": "^8.8.2" } }, "supports-color": { @@ -10783,22 +11349,28 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true + }, "tinybench": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz", - "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz", + "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==", "dev": true }, "tinypool": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz", - "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz", + "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==", "dev": true }, "tinyspy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz", - "integrity": "sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.0.tgz", + "integrity": "sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==", "dev": true }, "tmp": { @@ -10885,9 +11457,15 @@ } }, "typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true + }, + "ufo": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz", + "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==", "dev": true }, "unique-string": { @@ -11021,28 +11599,60 @@ } } }, + "vite-node": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.30.1.tgz", + "integrity": "sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==", + "dev": true, + "requires": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.2.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + } + }, "vitest": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.25.3.tgz", - "integrity": "sha512-/UzHfXIKsELZhL7OaM2xFlRF8HRZgAHtPctacvNK8H4vOcbJJAMEgbWNGSAK7Y9b1NBe5SeM7VTuz2RsTHFJJA==", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.30.1.tgz", + "integrity": "sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==", "dev": true, "requires": { - "@types/chai": "^4.3.3", + "@types/chai": "^4.3.4", "@types/chai-subset": "^1.3.3", "@types/node": "*", - "acorn": "^8.8.0", + "@vitest/expect": "0.30.1", + "@vitest/runner": "0.30.1", + "@vitest/snapshot": "0.30.1", + "@vitest/spy": "0.30.1", + "@vitest/utils": "0.30.1", + "acorn": "^8.8.2", "acorn-walk": "^8.2.0", - "chai": "^4.3.6", + "cac": "^6.7.14", + "chai": "^4.3.7", + "concordance": "^5.0.4", "debug": "^4.3.4", - "local-pkg": "^0.4.2", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", "source-map": "^0.6.1", - "strip-literal": "^0.4.2", - "tinybench": "^2.3.1", - "tinypool": "^0.3.0", - "tinyspy": "^1.0.2", - "vite": "^3.0.0" + "std-env": "^3.3.2", + "strip-literal": "^1.0.1", + "tinybench": "^2.4.0", + "tinypool": "^0.4.0", + "vite": "^3.0.0 || ^4.0.0", + "vite-node": "0.30.1", + "why-is-node-running": "^2.2.2" } }, + "well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -11052,6 +11662,16 @@ "isexe": "^2.0.0" } }, + "why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "requires": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + } + }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", diff --git a/package.json b/package.json index 4858af1..ce89671 100644 --- a/package.json +++ b/package.json @@ -63,18 +63,18 @@ "is-what": "^4.1.8" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.45.0", - "@typescript-eslint/parser": "^5.45.0", + "@typescript-eslint/eslint-plugin": "^5.59.0", + "@typescript-eslint/parser": "^5.59.0", "del-cli": "^5.0.0", - "eslint": "^8.28.0", - "eslint-config-prettier": "^8.5.0", + "eslint": "^8.39.0", + "eslint-config-prettier": "^8.8.0", "eslint-plugin-tree-shaking": "^1.10.0", - "np": "^7.6.2", - "prettier": "^2.8.0", - "rollup": "^3.5.0", + "np": "^7.7.0", + "prettier": "^2.8.8", + "rollup": "^3.21.0", "rollup-plugin-typescript2": "^0.34.1", - "typescript": "^4.9.3", - "vitest": "^0.25.3" + "typescript": "^5.0.4", + "vitest": "^0.30.1" }, "np": { "yarn": false,