From 53525f2445dba2682af57d90df9adc2d7e5cd2dc Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Thu, 20 Jul 2023 11:18:12 +0800 Subject: [PATCH 01/19] feat: add support for watch & computed --- packages/core/package.json | 11 +- packages/core/src/computed.ts | 173 ++ packages/core/src/core/{util.js => util.ts} | 18 +- packages/core/src/dblKeyMap.ts | 40 +- packages/core/src/index.ts | 176 +- packages/core/tsconfig.json | 2 +- pnpm-lock.yaml | 2103 ++++++++++--------- 7 files changed, 1430 insertions(+), 1093 deletions(-) create mode 100644 packages/core/src/computed.ts rename packages/core/src/core/{util.js => util.ts} (62%) diff --git a/packages/core/package.json b/packages/core/package.json index 43c2713..ffc6e0e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -3,16 +3,7 @@ "version": "1.0.38", "description": "Web components quark-element", "type": "module", - "main": "./lib/index.umd.js", - "module": "./lib/index.js", - "types": "./lib/index.d.ts", - "exports": { - ".": { - "import": "./lib/index.js", - "require": "./lib/index.umd.js", - "types": "./lib/index.d.ts" - } - }, + "main": "./src/index.ts", "browserslist": "chrome >= 53, edge >= 79, firefox >= 63, opera >= 40, safari >= 10.1, ChromeAndroid >= 53, FirefoxAndroid >= 63, ios_saf >= 10.3, Samsung >= 6.0", "files": [ "lib/*", diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts new file mode 100644 index 0000000..b8801c6 --- /dev/null +++ b/packages/core/src/computed.ts @@ -0,0 +1,173 @@ +import { QuarkElement } from "." + +/** dependency universal id */ +let uid = 0 + +/** current watcher that is collecting it's dependencies */ +export let currDepTarget: Watcher| undefined + +export type WatcherGetter = () => any + +export class Watcher { + /** + * watcher itself can be dependency of others' + * + * so you can treat it as watcher itself (for maintaining dependencies) + */ + dep: Dep = new Dep() + /** this watcher's dependencies */ + deps = new Map() + oldDeps = new Map() + /** watcher's getter function */ + getter: WatcherGetter + /** quark element's instance */ + inst: QuarkElement + /** computed value */ + value: any = undefined + /** is computed value dirty */ + dirty = true + /** is computed watcher */ + computed: boolean + /** callback */ + cb: ((newVal: any, oldVal: any) => void) + + constructor( + inst: QuarkElement, + getterOrExpr: WatcherGetter | string, + computed: boolean = false, + cb: (newVal: any, oldVal: any) => void = () => {} + ) { + this.inst = inst + this.computed = computed + + if (typeof getterOrExpr === 'function') { + this.getter = getterOrExpr + } else { + this.getter = () => { + return getterOrExpr + .split('.') + .reduce((acc, pathSeg) => acc?.[pathSeg], inst); + } + } + + this.cb = cb + + if (!this.computed) { + this.value = this.get() + } + } + + /** get latest computed value of watcher */ + get() { + this.dep.depend() + + if (this.dirty) { + return this.updateAndGet() + } + + return this.value + } + + /** invoke getter, recompute value, manage dependencies */ + updateAndGet() { + const oldValue = this.value + setCurrDepTarget(this) + this.oldDeps = this.deps + this.deps = new Map() + // * invoke getter and collect new dependencies + this.value = this.getter.call(this.inst) + this.dirty = false + popCurrDepTarget() + this.cleanDeps() + + if (this.value !== oldValue) { + this.cb.call(this.inst, this.value, oldValue) + } + + return this.value + } + + /** clean invalidated dependencies */ + cleanDeps() { + this.oldDeps.forEach((dep, id) => { + if (!this.deps.has(id)) { + dep.unwatch(this) + } + }) + } + + /** add dependency to this watcher's dependency list */ + addDep(dep: Dep) { + const { id } = dep + + if (!this.deps.has(id)) { + this.deps.set(id, dep) + dep.watch(this) + } + } + + /** mark itself as a dependency of current watcher */ + depend() { + if (currDepTarget) { + currDepTarget.addDep(this.dep) + } + } + + /** receive update notification from it's dependency */ + update() { + this.dirty = true + // dependency changed, prepare update for it's watchers + this.updateAndGet() + // * notify watchers of this watcher + this.dep.notify() + } +} + +export class Dep { + /** dependecy id */ + id: number + /** watchers that are watching this dependecy, listening to its changes */ + watchers: Set + + constructor() { + this.id = uid++ + this.watchers = new Set() + } + + /** a watcher subscribe to this dependency */ + watch(watcher: Watcher) { + this.watchers.add(watcher) + } + + unwatch(watcher: Watcher) { + this.watchers.delete(watcher) + } + + /** notify update to its watchers */ + notify() { + this.watchers.forEach(watcher => watcher.update()) + } + + /** + * mark itself as a dependency of current watcher. + * in other words, current watcher depends on it. + */ + depend() { + if (currDepTarget) { + currDepTarget.addDep(this) + } + } +} + +const depTargetStack: Watcher[] = [] + +/** setter for {@link currDepTarget} */ +export const setCurrDepTarget = (target: Watcher) => { + depTargetStack.push(target) + currDepTarget = target +} + +export const popCurrDepTarget = () => { + depTargetStack.pop() + currDepTarget = depTargetStack[depTargetStack.length - 1] +} diff --git a/packages/core/src/core/util.js b/packages/core/src/core/util.ts similarity index 62% rename from packages/core/src/core/util.js rename to packages/core/src/core/util.ts index 9bd76b8..21bb448 100644 --- a/packages/core/src/core/util.js +++ b/packages/core/src/core/util.ts @@ -3,33 +3,33 @@ import { EMPTY_ARR } from "./constants"; /** * Assign properties from `props` to `obj` * @template O, P The obj and props types - * @param {O} obj The object to copy properties to - * @param {P} props The object to copy properties from - * @returns {O & P} + * @param obj The object to copy properties to + * @param props The object to copy properties from + * @returns */ export function assign(obj, props) { // @ts-ignore We change the type of `obj` to be `O & P` for (let i in props) obj[i] = props[i]; - return /** @type {O & P} */ (obj); + return obj; } /** * Remove a child node from its parent if attached. This is a workaround for * IE11 which doesn't support `Element.prototype.remove()`. Using this function * is smaller than including a dedicated polyfill. - * @param {Node} node The node to remove + * @param node The node to remove */ -export function removeNode(node) { +export function removeNode(node: Node) { let parentNode = node.parentNode; if (parentNode) parentNode.removeChild(node); } /** * Checks if `value` is a `function`. - * @param {X} value The value to check - * @returns {X is ((...args: any[]) => any)} Returns `true` if `value` is a function, else `false`. + * @param value The value to check + * @returns Returns `true` if `value` is a function, else `false`. */ -export function isFunction(value) { +export function isFunction(value: any): value is (...args: any[]) => any { return typeof value === "function"; } diff --git a/packages/core/src/dblKeyMap.ts b/packages/core/src/dblKeyMap.ts index 8f3f317..7f89d19 100644 --- a/packages/core/src/dblKeyMap.ts +++ b/packages/core/src/dblKeyMap.ts @@ -1,41 +1,41 @@ -export default class DblKeyMap { - private map: Map> = new Map(); +export default class DblKeyMap { + private map: Map> = new Map(); - get(key1: Key1): Map - get(key1: Key1, key2: Key2): Value + get(key: Key): Map | undefined + get(key: Key, subKey: SubKey): Value - get(key1: Key1, key2?: Key2) { - const subMap = this.map.get(key1); + get(key: Key, subKey?: SubKey) { + const subMap = this.map.get(key); if (subMap) { - if (!key2) return subMap - return subMap.get(key2); + if (!subKey) return subMap + return subMap.get(subKey); } } - set(key1: Key1, key2: Key2, value: Value) { - let subMap = this.map.get(key1); + set(key: Key, subKey: SubKey, value: Value) { + let subMap = this.map.get(key); if (!subMap) { subMap = new Map(); - this.map.set(key1, subMap); + this.map.set(key, subMap); } - subMap?.set(key2, value); + subMap?.set(subKey, value); } - forEach(cb: (value: Value, key1: Key1, key2: Key2) => void) { - this.map.forEach((subMap, key1) => { - subMap.forEach((value, key2) => { - cb(value, key1, key2); + forEach(cb: (value: Value, key: Key, subKey: SubKey) => void) { + this.map.forEach((subMap, key) => { + subMap.forEach((value, subKey) => { + cb(value, key, subKey); }); }); } - delete(key1: Key1) { - this.map.delete(key1); + delete(key: Key) { + this.map.delete(key); } deleteAll() { - this.map.forEach((_, key1) => { - this.map.delete(key1); + this.map.forEach((_, key) => { + this.map.delete(key); }); } } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index b66ee4e..4d971fd 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -5,6 +5,7 @@ import { PropertyDeclaration, converterFunction } from "./models" import DblKeyMap from "./dblKeyMap" import { EventController, EventHandler } from "./eventController" import {version} from '../package.json' +import { Dep, Watcher } from './computed'; export interface Ref { current: T; @@ -16,7 +17,7 @@ export function createRef(): Ref { export const Fragment: any = OriginFragment; -if(~location.href.indexOf('localhost')) { +if(process.env.NODE_ENV === 'development') { console.info(`%cquarkc@${version}`, 'color: white;background:#9f57f8;font-weight:bold;font-size:10px;padding:2px 6px;border-radius: 5px','Running in dev mode.') } @@ -43,7 +44,7 @@ const defaultPropertyDeclaration: PropertyDeclaration = { export const property = (options: PropertyDeclaration = {}) => { return (target: unknown, name: string) => { - return (target.constructor as typeof QuarkElement).createProperty( + return (target as { constructor: typeof QuarkElement }).constructor.createProperty( name, options ); @@ -52,20 +53,62 @@ export const property = (options: PropertyDeclaration = {}) => { export const state = () => { return (target: unknown, name: string) => { - return (target.constructor as typeof QuarkElement).createState(name); + return (target as { constructor: typeof QuarkElement }).constructor.createState(name); }; }; +export const computed = () => { + return (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => { + return (target as { constructor: typeof QuarkElement }).constructor.computed( + propertyKey, + descriptor, + ); + }; +}; + +export const watch = (path: string) => { + return (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => { + return (target as { constructor: typeof QuarkElement }).constructor.watch( + propertyKey, + descriptor, + path, + ); + }; +} + const ElementProperties: DblKeyMap< typeof QuarkElement, string, PropertyDeclaration > = new DblKeyMap(); +const PropertyDepMap: DblKeyMap< + typeof QuarkElement, + string, + Dep +> = new DblKeyMap(); + +type PropertyDescriptorCreator = (defaultValue?: any) => PropertyDescriptor + const Descriptors: DblKeyMap< typeof QuarkElement, string, - (defaultValue?: any) => PropertyDescriptor + PropertyDescriptorCreator +> = new DblKeyMap(); + +const ComputedDescriptors: DblKeyMap< + typeof QuarkElement, + string, + PropertyDescriptorCreator +> = new DblKeyMap(); + +const UserWatchers: DblKeyMap< + typeof QuarkElement, + string, + { + path: string; + cb: (newVal: any, oldVal: any) => void + } > = new DblKeyMap(); export function customElement( @@ -89,14 +132,14 @@ export function customElement( return attributes; } - static isBooleanProperty(propertyName: string) { + static isBooleanProperty(propKey: string) { let isBoolean = false; const targetProperties = ElementProperties.get(target); if (targetProperties) { targetProperties.forEach((elOption, elName) => { if ( elOption.type === Boolean && - propertyName === elName + propKey === elName ) { isBoolean = true; return isBoolean; @@ -127,21 +170,46 @@ export function customElement( } } + const comp = Object.getPrototypeOf(this.constructor); + /** * 重写类的属性描述符,并重写属性初始值。 * 注:由于子类的属性初始化晚于当前基类的构造函数,同名属性会导致属性描述符被覆盖,所以必须放在基类构造函数之后执行 */ - const targetDescriptors = Descriptors.get(Object.getPrototypeOf(this.constructor)) - if (targetDescriptors) { - targetDescriptors.forEach((descriptorCreator, propertyName) => { + const descriptors = Descriptors.get(comp); + + if (descriptors?.size) { + descriptors.forEach((descriptorCreator, propKey) => { Object.defineProperty( this, - propertyName, - descriptorCreator((this as any)[propertyName]) + propKey, + descriptorCreator(this[propKey]) ); }); } - + + const computedDescriptors = ComputedDescriptors.get(comp) + + if (computedDescriptors?.size) { + computedDescriptors.forEach((descriptorCreator, propKey) => { + Object.defineProperty( + this, + propKey, + descriptorCreator() + ); + }); + } + + const watchers = UserWatchers.get(comp) + + if (watchers?.size) { + watchers.forEach(({ + path, + cb, + }) => { + new Watcher(this, path, false, cb); + }); + } } } @@ -158,11 +226,13 @@ export class QuarkElement extends HTMLElement { // 外部属性装饰器,抹平不同框架使用差异 protected static getPropertyDescriptor( name: string, - options: PropertyDeclaration + options: PropertyDeclaration, + dep: Dep, ): (defaultValue?: any) => PropertyDescriptor { return (defaultValue?: any) => { return { get(this: QuarkElement): any { + dep.depend() let val = this.getAttribute(name); if (!isEmpty(defaultValue)) { @@ -187,6 +257,7 @@ export class QuarkElement extends HTMLElement { }, set(this: QuarkElement, value: string | boolean | null) { let val = value as string; + if (isFunction(options.converter)) { val = options.converter(value, options.type) as string; } @@ -211,12 +282,16 @@ export class QuarkElement extends HTMLElement { protected static getStateDescriptor(): () => PropertyDescriptor { return (defaultValue?: any) => { let _value = defaultValue; + let dep: Dep | undefined; + const getDep = () => dep || (dep = new Dep()); return { get(this: QuarkElement): any { + getDep().depend() return _value; }, set(this: QuarkElement, value: string | boolean | null) { _value = value; + getDep().notify(); this._render(); }, configurable: true, @@ -229,13 +304,45 @@ export class QuarkElement extends HTMLElement { const newOpt = Object.assign({}, defaultPropertyDeclaration, options); const attributeName = options.attribute || name; ElementProperties.set(this, attributeName, newOpt); - Descriptors.set(this, name, this.getPropertyDescriptor(attributeName, newOpt)); + const dep = new Dep(); + PropertyDepMap.set(this, attributeName, dep); + Descriptors.set(this, name, this.getPropertyDescriptor(attributeName, newOpt, dep)); } static createState(name: string) { Descriptors.set(this, name, this.getStateDescriptor()); } + static computed(propertyKey: string, descriptor: PropertyDescriptor) { + if (descriptor.get) { + ComputedDescriptors.set(this, propertyKey, () => { + let watcher: Watcher; + return { + configurable: true, + enumerable: true, + get(this: QuarkElement) { + if (!watcher) { + watcher = new Watcher(this, descriptor.get!, true); + } + + return watcher.get(); + }, + }; + }); + } + } + + static watch(propertyKey: string, descriptor: PropertyDescriptor, path: string) { + const { value } = descriptor; + + if (typeof value === 'function') { + UserWatchers.set(this, propertyKey, { + path, + cb: value, + }); + } + } + private eventController: EventController = new EventController(); private rootPatch = (newRootVNode: any) => { @@ -252,20 +359,21 @@ export class QuarkElement extends HTMLElement { } } + /** 对传入的值根据类型进行转换处理 */ private _updateProperty() { (this.constructor as any).observedAttributes.forEach( - (propertyName: string) => { - (this as any)[propertyName] = (this as any)[propertyName]; + (propKey: string) => { + this[propKey] = this[propKey]; } ); } - private _updateBooleanProperty(propertyName: string) { + private _updateBooleanProperty(propKey: string) { // 判断是否是 boolean - if ((this.constructor as any).isBooleanProperty(propertyName)) { + if ((this.constructor as any).isBooleanProperty(propKey)) { // 针对 false 场景走一次 set, true 不需要重新走 set - if (!(this as any)[propertyName]) { - (this as any)[propertyName] = (this as any)[propertyName]; + if (!(this as any)[propKey]) { + (this as any)[propKey] = (this as any)[propKey]; } } } @@ -319,6 +427,8 @@ export class QuarkElement extends HTMLElement { return "" as any; } + private _initialRender = true + connectedCallback() { this._updateProperty(); @@ -326,6 +436,7 @@ export class QuarkElement extends HTMLElement { * 初始值重写后首次渲染 */ this._render(); + this._initialRender = false; if (isFunction(this.componentDidMount)) { this.componentDidMount(); @@ -333,13 +444,33 @@ export class QuarkElement extends HTMLElement { } attributeChangedCallback(name: string, oldValue: string, value: string) { - // 因为 React 的属性变更并不会触发 set,此时如果 boolean 值变更,这里的 value 会是字符串,组件内部通过 get 操作可以获取到正确的类型 - const newValue = this[name] || value; + if (this._initialRender) { + return; + } + + const instValue = this[name]; + let newValue = instValue; + + if (!newValue) { + newValue = value + + if (instValue !== newValue) { + // * make sure this[name] equals to newValue + this[name] = newValue + } + } + + PropertyDepMap + .get(Object.getPrototypeOf(this.constructor)) + ?.get(name) + ?.notify(); + if (isFunction(this.shouldComponentUpdate)) { if (!this.shouldComponentUpdate(name, oldValue, newValue)) { return; } } + this._render(); if (isFunction(this.componentDidUpdate)) { @@ -360,5 +491,6 @@ export class QuarkElement extends HTMLElement { this.eventController.removeAllListener(); this.rootPatch(null); + this._initialRender = true; } } diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 4df3107..2455241 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -7,7 +7,7 @@ "target": "esnext", "module": "esnext", "moduleResolution": "node", - "strict": false, + "strict": true, "jsx": "react", "jsxFactory": "QuarkElement.h", "sourceMap": false, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2450bc2..14f1f76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,99 +1,138 @@ -lockfileVersion: 5.4 +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false importers: .: - specifiers: - '@commitlint/cli': ^17.0.3 - '@typescript-eslint/eslint-plugin': ^5.59.9 - '@typescript-eslint/parser': ^5.59.9 - eslint: ^7.23.2 - eslint-define-config: ^1.21.0 - less: ^4.1.3 - lint-staged: ^10.5.4 - postcss: ^8.4.24 - prettier: ^2.0.0 - rimraf: ^3.0.2 - shelljs: ^0.8.5 - typescript: ^5.0.2 - unbuild: ^1.2.1 - vite: ^4.1.0 devDependencies: - '@commitlint/cli': 17.6.5 - '@typescript-eslint/eslint-plugin': 5.59.9_4fmxihdcopu4aswww3w4wmtreq - '@typescript-eslint/parser': 5.59.9_nydeehezxge4zglz7xgffbdlvu - eslint: 7.32.0 - eslint-define-config: 1.21.0 - less: 4.1.3 - lint-staged: 10.5.4 - postcss: 8.4.24 - prettier: 2.8.8 - rimraf: 3.0.2 - shelljs: 0.8.5 - typescript: 5.1.3 - unbuild: 1.2.1 - vite: 4.3.9_less@4.1.3 + '@commitlint/cli': + specifier: ^17.0.3 + version: 17.6.5 + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.9 + version: 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@7.32.0)(typescript@5.1.3) + '@typescript-eslint/parser': + specifier: ^5.59.9 + version: 5.59.9(eslint@7.32.0)(typescript@5.1.3) + eslint: + specifier: ^7.23.2 + version: 7.32.0 + eslint-define-config: + specifier: ^1.21.0 + version: 1.21.0 + less: + specifier: ^4.1.3 + version: 4.1.3 + lint-staged: + specifier: ^10.5.4 + version: 10.5.4 + postcss: + specifier: ^8.4.24 + version: 8.4.24 + prettier: + specifier: ^2.0.0 + version: 2.8.8 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + shelljs: + specifier: ^0.8.5 + version: 0.8.5 + typescript: + specifier: ^5.0.2 + version: 5.1.3 + unbuild: + specifier: ^1.2.1 + version: 1.2.1 + vite: + specifier: ^4.1.0 + version: 4.3.9(@types/node@20.3.0)(less@4.1.3) packages/core: - specifiers: - '@babel/core': ^7.22.5 - '@babel/plugin-proposal-decorators': ^7.22.5 - '@babel/plugin-transform-runtime': ^7.22.5 - '@babel/preset-env': ^7.22.5 - '@babel/runtime': ^7.22.5 - '@rollup/plugin-babel': ^5.3.1 - '@rollup/plugin-commonjs': ^21.1.0 - '@rollup/plugin-json': ^6.0.0 - '@rollup/plugin-node-resolve': ^13.3.0 - '@rollup/plugin-terser': ^0.4.3 - '@rollup/plugin-typescript': ^8.5.0 - '@types/node': ^14.18.52 - conventional-changelog-cli: ^3.0.0 - rimraf: 3.0.2 - rollup: 2.77.0 - rollup-plugin-filesize: ^10.0.0 - typescript: ^4.9.5 dependencies: - '@babel/runtime': 7.22.5 + '@babel/runtime': + specifier: ^7.22.5 + version: 7.22.5 devDependencies: - '@babel/core': 7.22.5 - '@babel/plugin-proposal-decorators': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-runtime': 7.22.5_@babel+core@7.22.5 - '@babel/preset-env': 7.22.5_@babel+core@7.22.5 - '@rollup/plugin-babel': 5.3.1_jnqmneol4xxee3tekczyfkwbhm - '@rollup/plugin-commonjs': 21.1.0_rollup@2.77.0 - '@rollup/plugin-json': 6.0.0_rollup@2.77.0 - '@rollup/plugin-node-resolve': 13.3.0_rollup@2.77.0 - '@rollup/plugin-terser': 0.4.3_rollup@2.77.0 - '@rollup/plugin-typescript': 8.5.0_sgdkrfzp45lu6nlqvjcchokyqa - '@types/node': 14.18.52 - conventional-changelog-cli: 3.0.0 - rimraf: 3.0.2 - rollup: 2.77.0 - rollup-plugin-filesize: 10.0.0 - typescript: 4.9.5 + '@babel/core': + specifier: ^7.22.5 + version: 7.22.5 + '@babel/plugin-proposal-decorators': + specifier: ^7.22.5 + version: 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-runtime': + specifier: ^7.22.5 + version: 7.22.5(@babel/core@7.22.5) + '@babel/preset-env': + specifier: ^7.22.5 + version: 7.22.5(@babel/core@7.22.5) + '@rollup/plugin-babel': + specifier: ^5.3.1 + version: 5.3.1(@babel/core@7.22.5)(rollup@2.77.0) + '@rollup/plugin-commonjs': + specifier: ^21.1.0 + version: 21.1.0(rollup@2.77.0) + '@rollup/plugin-json': + specifier: ^6.0.0 + version: 6.0.0(rollup@2.77.0) + '@rollup/plugin-node-resolve': + specifier: ^13.3.0 + version: 13.3.0(rollup@2.77.0) + '@rollup/plugin-terser': + specifier: ^0.4.3 + version: 0.4.3(rollup@2.77.0) + '@rollup/plugin-typescript': + specifier: ^8.5.0 + version: 8.5.0(rollup@2.77.0)(typescript@4.9.5) + '@types/node': + specifier: ^14.18.52 + version: 14.18.52 + conventional-changelog-cli: + specifier: ^3.0.0 + version: 3.0.0 + rimraf: + specifier: 3.0.2 + version: 3.0.2 + rollup: + specifier: 2.77.0 + version: 2.77.0 + rollup-plugin-filesize: + specifier: ^10.0.0 + version: 10.0.0 + typescript: + specifier: ^4.9.5 + version: 4.9.5 packages/create-quarkc: - specifiers: - '@types/cross-spawn': ^6.0.2 - '@types/minimist': ^1.2.2 - '@types/prompts': ^2.4.4 - cross-spawn: ^7.0.3 - kolorist: ^1.8.0 - minimist: ^1.2.8 - prompts: ^2.4.2 devDependencies: - '@types/cross-spawn': 6.0.2 - '@types/minimist': 1.2.2 - '@types/prompts': 2.4.4 - cross-spawn: 7.0.3 - kolorist: 1.8.0 - minimist: 1.2.8 - prompts: 2.4.2 + '@types/cross-spawn': + specifier: ^6.0.2 + version: 6.0.2 + '@types/minimist': + specifier: ^1.2.2 + version: 1.2.2 + '@types/prompts': + specifier: ^2.4.4 + version: 2.4.4 + cross-spawn: + specifier: ^7.0.3 + version: 7.0.3 + kolorist: + specifier: ^1.8.0 + version: 1.8.0 + minimist: + specifier: ^1.2.8 + version: 1.2.8 + prompts: + specifier: ^2.4.2 + version: 2.4.2 packages: - /@ampproject/remapping/2.2.1: + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} dependencies: @@ -101,32 +140,32 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@babel/code-frame/7.12.11: + /@babel/code-frame@7.12.11: resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: '@babel/highlight': 7.22.5 dev: true - /@babel/code-frame/7.22.5: + /@babel/code-frame@7.22.5: resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.22.5 dev: true - /@babel/compat-data/7.22.5: + /@babel/compat-data@7.22.5: resolution: {integrity: sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.22.5: + /@babel/core@7.22.5: resolution: {integrity: sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.5 '@babel/generator': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-module-transforms': 7.22.5 '@babel/helpers': 7.22.5 '@babel/parser': 7.22.5 @@ -142,7 +181,7 @@ packages: - supports-color dev: true - /@babel/generator/7.22.5: + /@babel/generator@7.22.5: resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==} engines: {node: '>=6.9.0'} dependencies: @@ -152,21 +191,21 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-annotate-as-pure/7.22.5: + /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-builder-binary-assignment-operator-visitor/7.22.5: + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5: resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-compilation-targets/7.22.5_@babel+core@7.22.5: + /@babel/helper-compilation-targets@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -180,7 +219,7 @@ packages: semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin/7.22.5_@babel+core@7.22.5: + /@babel/helper-create-class-features-plugin@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==} engines: {node: '>=6.9.0'} peerDependencies: @@ -200,7 +239,7 @@ packages: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin/7.22.5_@babel+core@7.22.5: + /@babel/helper-create-regexp-features-plugin@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==} engines: {node: '>=6.9.0'} peerDependencies: @@ -212,13 +251,13 @@ packages: semver: 6.3.0 dev: true - /@babel/helper-define-polyfill-provider/0.4.0_@babel+core@7.22.5: + /@babel/helper-define-polyfill-provider@0.4.0(@babel/core@7.22.5): resolution: {integrity: sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -228,12 +267,12 @@ packages: - supports-color dev: true - /@babel/helper-environment-visitor/7.22.5: + /@babel/helper-environment-visitor@7.22.5: resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name/7.22.5: + /@babel/helper-function-name@7.22.5: resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} dependencies: @@ -241,28 +280,28 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/helper-hoist-variables/7.22.5: + /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-member-expression-to-functions/7.22.5: + /@babel/helper-member-expression-to-functions@7.22.5: resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-module-imports/7.22.5: + /@babel/helper-module-imports@7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-module-transforms/7.22.5: + /@babel/helper-module-transforms@7.22.5: resolution: {integrity: sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==} engines: {node: '>=6.9.0'} dependencies: @@ -278,19 +317,19 @@ packages: - supports-color dev: true - /@babel/helper-optimise-call-expression/7.22.5: + /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-plugin-utils/7.22.5: + /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator/7.22.5_@babel+core@7.22.5: + /@babel/helper-remap-async-to-generator@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==} engines: {node: '>=6.9.0'} peerDependencies: @@ -305,7 +344,7 @@ packages: - supports-color dev: true - /@babel/helper-replace-supers/7.22.5: + /@babel/helper-replace-supers@7.22.5: resolution: {integrity: sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==} engines: {node: '>=6.9.0'} dependencies: @@ -319,43 +358,43 @@ packages: - supports-color dev: true - /@babel/helper-simple-access/7.22.5: + /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-skip-transparent-expression-wrappers/7.22.5: + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-split-export-declaration/7.22.5: + /@babel/helper-split-export-declaration@7.22.5: resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 dev: true - /@babel/helper-string-parser/7.22.5: + /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier/7.22.5: + /@babel/helper-validator-identifier@7.22.5: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option/7.22.5: + /@babel/helper-validator-option@7.22.5: resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-wrap-function/7.22.5: + /@babel/helper-wrap-function@7.22.5: resolution: {integrity: sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==} engines: {node: '>=6.9.0'} dependencies: @@ -367,7 +406,7 @@ packages: - supports-color dev: true - /@babel/helpers/7.22.5: + /@babel/helpers@7.22.5: resolution: {integrity: sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==} engines: {node: '>=6.9.0'} dependencies: @@ -378,7 +417,7 @@ packages: - supports-color dev: true - /@babel/highlight/7.22.5: + /@babel/highlight@7.22.5: resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} dependencies: @@ -387,7 +426,7 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.22.5: + /@babel/parser@7.22.5: resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -395,7 +434,7 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.22.5_@babel+core@7.22.5: + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -405,7 +444,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.22.5_@babel+core@7.22.5: + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} engines: {node: '>=6.9.0'} peerDependencies: @@ -414,26 +453,26 @@ packages: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.22.5) dev: true - /@babel/plugin-proposal-decorators/7.22.5_@babel+core@7.22.5: + /@babel/plugin-proposal-decorators@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-h8hlezQ4dl6ixodgXkH8lUfcD7x+WAuIqPUjwGoItynrXOAv4a4Tci1zA/qjzQjjcl0v3QpLdc2LM6ZACQuY7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.5 - '@babel/plugin-syntax-decorators': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-syntax-decorators': 7.22.5(@babel/core@7.22.5) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-private-property-in-object/7.21.0-placeholder-for-preset-env.2_@babel+core@7.22.5: + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.5): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: @@ -442,18 +481,18 @@ packages: '@babel/core': 7.22.5 dev: true - /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.22.5: + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.5): resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.22.5: + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.5): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -462,7 +501,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.22.5: + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.5): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -471,7 +510,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.22.5: + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.5): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -481,7 +520,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-decorators/7.22.5_@babel+core@7.22.5: + /@babel/plugin-syntax-decorators@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-avpUOBS7IU6al8MmF1XpAyj9QYeLPuSDJI5D4pVMSMdL7xQokKqJPYQC67RCT0aCTashUXPiGwMJ0DEXXCEmMA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -491,7 +530,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.22.5: + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.5): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -500,7 +539,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.22.5: + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.5): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -509,7 +548,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions/7.22.5_@babel+core@7.22.5: + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -519,7 +558,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes/7.22.5_@babel+core@7.22.5: + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -529,7 +568,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.22.5: + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.5): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -538,7 +577,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.22.5: + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.5): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -547,7 +586,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.22.5: + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.5): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -556,7 +595,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.22.5: + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.5): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -565,7 +604,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.22.5: + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.5): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -574,7 +613,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.22.5: + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.5): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -583,7 +622,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.22.5: + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.5): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -592,7 +631,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.22.5: + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.5): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -601,7 +640,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.22.5: + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.5): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -611,7 +650,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.22.5: + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.5): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -621,18 +660,18 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex/7.18.6_@babel+core@7.22.5: + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.5): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -642,7 +681,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-async-generator-functions@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -651,13 +690,13 @@ packages: '@babel/core': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-async-to-generator/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -666,12 +705,12 @@ packages: '@babel/core': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.5_@babel+core@7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.22.5) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-block-scoped-functions/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -681,7 +720,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -691,34 +730,34 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-class-static-block/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-classes/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-classes@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -726,7 +765,7 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 @@ -738,7 +777,7 @@ packages: - supports-color dev: true - /@babel/plugin-transform-computed-properties/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -749,7 +788,7 @@ packages: '@babel/template': 7.22.5 dev: true - /@babel/plugin-transform-destructuring/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -759,18 +798,18 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -780,7 +819,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -788,10 +827,10 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5) dev: true - /@babel/plugin-transform-exponentiation-operator/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} engines: {node: '>=6.9.0'} peerDependencies: @@ -802,7 +841,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -810,10 +849,10 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5) dev: true - /@babel/plugin-transform-for-of/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} engines: {node: '>=6.9.0'} peerDependencies: @@ -823,19 +862,19 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} engines: {node: '>=6.9.0'} peerDependencies: @@ -843,10 +882,10 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5) dev: true - /@babel/plugin-transform-literals/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: @@ -856,7 +895,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -864,10 +903,10 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5) dev: true - /@babel/plugin-transform-member-expression-literals/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: @@ -877,7 +916,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -890,7 +929,7 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-commonjs/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -904,7 +943,7 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-systemjs/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -919,7 +958,7 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-umd/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -932,18 +971,18 @@ packages: - supports-color dev: true - /@babel/plugin-transform-named-capturing-groups-regex/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -953,7 +992,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -961,10 +1000,10 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5) dev: true - /@babel/plugin-transform-numeric-separator/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} engines: {node: '>=6.9.0'} peerDependencies: @@ -972,10 +1011,10 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5) dev: true - /@babel/plugin-transform-object-rest-spread/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -983,13 +1022,13 @@ packages: dependencies: '@babel/compat-data': 7.22.5 '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.5 - '@babel/plugin-transform-parameters': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.5) dev: true - /@babel/plugin-transform-object-super/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1002,7 +1041,7 @@ packages: - supports-color dev: true - /@babel/plugin-transform-optional-catch-binding/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1010,10 +1049,10 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5) dev: true - /@babel/plugin-transform-optional-chaining/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-optional-chaining@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1022,10 +1061,10 @@ packages: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5) dev: true - /@babel/plugin-transform-parameters/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1035,20 +1074,20 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-private-property-in-object/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1056,14 +1095,14 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-property-literals/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1073,7 +1112,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1084,7 +1123,7 @@ packages: regenerator-transform: 0.15.1 dev: true - /@babel/plugin-transform-reserved-words/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1094,7 +1133,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-runtime/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-runtime@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-bg4Wxd1FWeFx3daHFTWk1pkSWK/AyQuiyAoeZAOkAOUBjnZPH6KT7eMxouV47tQ6hl6ax2zyAWBdWZXbrvXlaw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1103,15 +1142,15 @@ packages: '@babel/core': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.3_@babel+core@7.22.5 - babel-plugin-polyfill-corejs3: 0.8.1_@babel+core@7.22.5 - babel-plugin-polyfill-regenerator: 0.5.0_@babel+core@7.22.5 + babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.22.5) + babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.22.5) + babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.22.5) semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-shorthand-properties/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1121,7 +1160,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1132,7 +1171,7 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1142,7 +1181,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1152,7 +1191,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1162,7 +1201,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1172,40 +1211,40 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex/7.22.5_@babel+core@7.22.5: + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env/7.22.5_@babel+core@7.22.5: + /@babel/preset-env@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1213,118 +1252,118 @@ packages: dependencies: '@babel/compat-data': 7.22.5 '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2_@babel+core@7.22.5 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.5 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.5 - '@babel/plugin-syntax-import-assertions': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-syntax-import-attributes': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.5 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.22.5 - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6_@babel+core@7.22.5 - '@babel/plugin-transform-arrow-functions': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-async-generator-functions': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-async-to-generator': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-block-scoped-functions': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-block-scoping': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-class-properties': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-class-static-block': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-classes': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-computed-properties': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-destructuring': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-dotall-regex': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-duplicate-keys': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-dynamic-import': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-exponentiation-operator': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-export-namespace-from': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-for-of': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-function-name': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-json-strings': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-literals': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-logical-assignment-operators': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-member-expression-literals': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-modules-amd': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-modules-commonjs': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-modules-systemjs': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-modules-umd': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-new-target': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-numeric-separator': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-object-rest-spread': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-object-super': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-optional-catch-binding': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-parameters': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-private-methods': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-private-property-in-object': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-property-literals': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-regenerator': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-reserved-words': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-shorthand-properties': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-spread': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-sticky-regex': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-template-literals': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-typeof-symbol': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-unicode-escapes': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-unicode-property-regex': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-unicode-regex': 7.22.5_@babel+core@7.22.5 - '@babel/plugin-transform-unicode-sets-regex': 7.22.5_@babel+core@7.22.5 - '@babel/preset-modules': 0.1.5_@babel+core@7.22.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.5) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-async-generator-functions': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-classes': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.5) + '@babel/preset-modules': 0.1.5(@babel/core@7.22.5) '@babel/types': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.3_@babel+core@7.22.5 - babel-plugin-polyfill-corejs3: 0.8.1_@babel+core@7.22.5 - babel-plugin-polyfill-regenerator: 0.5.0_@babel+core@7.22.5 + babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.22.5) + babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.22.5) + babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.22.5) core-js-compat: 3.31.0 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules/0.1.5_@babel+core@7.22.5: + /@babel/preset-modules@0.1.5(@babel/core@7.22.5): resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.22.5 - '@babel/plugin-transform-dotall-regex': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.5) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.5) '@babel/types': 7.22.5 esutils: 2.0.3 dev: true - /@babel/regjsgen/0.8.0: + /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime/7.22.5: + /@babel/runtime@7.22.5: resolution: {integrity: sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 - /@babel/standalone/7.22.8: + /@babel/standalone@7.22.8: resolution: {integrity: sha512-Bm9Sn+FfDqcvxYo/lz5BFo/PWBcjhxD6rtifkchFes/rU8/u4FacCFY/WdqwPtycH54THlXqMYMjaWigQaMpYA==} engines: {node: '>=6.9.0'} dev: true - /@babel/template/7.22.5: + /@babel/template@7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: @@ -1333,7 +1372,7 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/traverse/7.22.5: + /@babel/traverse@7.22.5: resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} engines: {node: '>=6.9.0'} dependencies: @@ -1351,7 +1390,7 @@ packages: - supports-color dev: true - /@babel/types/7.22.5: + /@babel/types@7.22.5: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} dependencies: @@ -1360,7 +1399,7 @@ packages: to-fast-properties: 2.0.0 dev: true - /@commitlint/cli/17.6.5: + /@commitlint/cli@17.6.5: resolution: {integrity: sha512-3PQrWr/uo6lzF5k7n5QuosCYnzaxP9qGBp3jhWP0Vmsa7XA6wrl9ccPqfQyXpSbQE3zBROVO3TDqgPKe4tfmLQ==} engines: {node: '>=v14'} hasBin: true @@ -1380,7 +1419,7 @@ packages: - '@swc/wasm' dev: true - /@commitlint/config-validator/17.4.4: + /@commitlint/config-validator@17.4.4: resolution: {integrity: sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==} engines: {node: '>=v14'} dependencies: @@ -1388,7 +1427,7 @@ packages: ajv: 8.12.0 dev: true - /@commitlint/ensure/17.4.4: + /@commitlint/ensure@17.4.4: resolution: {integrity: sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==} engines: {node: '>=v14'} dependencies: @@ -1400,12 +1439,12 @@ packages: lodash.upperfirst: 4.3.1 dev: true - /@commitlint/execute-rule/17.4.0: + /@commitlint/execute-rule@17.4.0: resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==} engines: {node: '>=v14'} dev: true - /@commitlint/format/17.4.4: + /@commitlint/format@17.4.4: resolution: {integrity: sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==} engines: {node: '>=v14'} dependencies: @@ -1413,7 +1452,7 @@ packages: chalk: 4.1.2 dev: true - /@commitlint/is-ignored/17.6.5: + /@commitlint/is-ignored@17.6.5: resolution: {integrity: sha512-CQvAPt9gX7cuUbMrIaIMKczfWJqqr6m8IlJs0F2zYwyyMTQ87QMHIj5jJ5HhOaOkaj6dvTMVGx8Dd1I4xgUuoQ==} engines: {node: '>=v14'} dependencies: @@ -1421,7 +1460,7 @@ packages: semver: 7.5.0 dev: true - /@commitlint/lint/17.6.5: + /@commitlint/lint@17.6.5: resolution: {integrity: sha512-BSJMwkE4LWXrOsiP9KoHG+/heSDfvOL/Nd16+ojTS/DX8HZr8dNl8l3TfVr/d/9maWD8fSegRGtBtsyGuugFrw==} engines: {node: '>=v14'} dependencies: @@ -1431,7 +1470,7 @@ packages: '@commitlint/types': 17.4.4 dev: true - /@commitlint/load/17.5.0: + /@commitlint/load@17.5.0: resolution: {integrity: sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q==} engines: {node: '>=v14'} dependencies: @@ -1442,24 +1481,24 @@ packages: '@types/node': 20.3.0 chalk: 4.1.2 cosmiconfig: 8.2.0 - cosmiconfig-typescript-loader: 4.3.0_tjgeulbbgoi5zfqyclbtz5tzzu + cosmiconfig-typescript-loader: 4.3.0(@types/node@20.3.0)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.1_4o3t5ohjtbynkvbqqlfrtrpvay + ts-node: 10.9.1(@types/node@20.3.0)(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' dev: true - /@commitlint/message/17.4.2: + /@commitlint/message@17.4.2: resolution: {integrity: sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==} engines: {node: '>=v14'} dev: true - /@commitlint/parse/17.6.5: + /@commitlint/parse@17.6.5: resolution: {integrity: sha512-0zle3bcn1Hevw5Jqpz/FzEWNo2KIzUbc1XyGg6WrWEoa6GH3A1pbqNF6MvE6rjuy6OY23c8stWnb4ETRZyN+Yw==} engines: {node: '>=v14'} dependencies: @@ -1468,7 +1507,7 @@ packages: conventional-commits-parser: 3.2.4 dev: true - /@commitlint/read/17.5.1: + /@commitlint/read@17.5.1: resolution: {integrity: sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==} engines: {node: '>=v14'} dependencies: @@ -1479,7 +1518,7 @@ packages: minimist: 1.2.8 dev: true - /@commitlint/resolve-extends/17.4.4: + /@commitlint/resolve-extends@17.4.4: resolution: {integrity: sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==} engines: {node: '>=v14'} dependencies: @@ -1491,7 +1530,7 @@ packages: resolve-global: 1.0.0 dev: true - /@commitlint/rules/17.6.5: + /@commitlint/rules@17.6.5: resolution: {integrity: sha512-uTB3zSmnPyW2qQQH+Dbq2rekjlWRtyrjDo4aLFe63uteandgkI+cc0NhhbBAzcXShzVk0qqp8SlkQMu0mgHg/A==} engines: {node: '>=v14'} dependencies: @@ -1502,51 +1541,51 @@ packages: execa: 5.1.1 dev: true - /@commitlint/to-lines/17.4.0: + /@commitlint/to-lines@17.4.0: resolution: {integrity: sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==} engines: {node: '>=v14'} dev: true - /@commitlint/top-level/17.4.0: + /@commitlint/top-level@17.4.0: resolution: {integrity: sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==} engines: {node: '>=v14'} dependencies: find-up: 5.0.0 dev: true - /@commitlint/types/17.4.4: + /@commitlint/types@17.4.4: resolution: {integrity: sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==} engines: {node: '>=v14'} dependencies: chalk: 4.1.2 dev: true - /@cspotcode/source-map-support/0.8.1: + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@esbuild/android-arm/0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-arm64/0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-x64/0.17.19: + /@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} cpu: [x64] @@ -1555,7 +1594,7 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64/0.17.19: + /@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} cpu: [arm64] @@ -1564,7 +1603,7 @@ packages: dev: true optional: true - /@esbuild/darwin-x64/0.17.19: + /@esbuild/darwin-x64@0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} cpu: [x64] @@ -1573,7 +1612,7 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64/0.17.19: + /@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} cpu: [arm64] @@ -1582,7 +1621,7 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64/0.17.19: + /@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} cpu: [x64] @@ -1591,25 +1630,25 @@ packages: dev: true optional: true - /@esbuild/linux-arm/0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm64/0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-ia32/0.17.19: + /@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} cpu: [ia32] @@ -1618,7 +1657,7 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.17.19: + /@esbuild/linux-loong64@0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} cpu: [loong64] @@ -1627,7 +1666,7 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el/0.17.19: + /@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} cpu: [mips64el] @@ -1636,7 +1675,7 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64/0.17.19: + /@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} cpu: [ppc64] @@ -1645,7 +1684,7 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64/0.17.19: + /@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} cpu: [riscv64] @@ -1654,7 +1693,7 @@ packages: dev: true optional: true - /@esbuild/linux-s390x/0.17.19: + /@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} cpu: [s390x] @@ -1663,7 +1702,7 @@ packages: dev: true optional: true - /@esbuild/linux-x64/0.17.19: + /@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} cpu: [x64] @@ -1672,7 +1711,7 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64/0.17.19: + /@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} cpu: [x64] @@ -1681,7 +1720,7 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64/0.17.19: + /@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} cpu: [x64] @@ -1690,7 +1729,7 @@ packages: dev: true optional: true - /@esbuild/sunos-x64/0.17.19: + /@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} cpu: [x64] @@ -1699,7 +1738,7 @@ packages: dev: true optional: true - /@esbuild/win32-arm64/0.17.19: + /@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} cpu: [arm64] @@ -1708,7 +1747,7 @@ packages: dev: true optional: true - /@esbuild/win32-ia32/0.17.19: + /@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} cpu: [ia32] @@ -1717,7 +1756,7 @@ packages: dev: true optional: true - /@esbuild/win32-x64/0.17.19: + /@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} cpu: [x64] @@ -1726,7 +1765,7 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils/4.4.0_eslint@7.32.0: + /@eslint-community/eslint-utils@4.4.0(eslint@7.32.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1736,12 +1775,12 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /@eslint-community/regexpp/4.5.1: + /@eslint-community/regexpp@4.5.1: resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc/0.4.3: + /@eslint/eslintrc@0.4.3: resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: @@ -1758,7 +1797,7 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.5.0: + /@humanwhocodes/config-array@0.5.0: resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} engines: {node: '>=10.10.0'} dependencies: @@ -1769,28 +1808,28 @@ packages: - supports-color dev: true - /@humanwhocodes/object-schema/1.2.1: + /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@hutson/parse-repository-url/3.0.2: + /@hutson/parse-repository-url@3.0.2: resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} dev: true - /@isaacs/cliui/8.0.2: + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} dependencies: string-width: 5.1.2 - string-width-cjs: /string-width/4.2.3 + string-width-cjs: /string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi/6.0.1 + strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi/7.0.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 dev: true - /@jridgewell/gen-mapping/0.3.3: + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} dependencies: @@ -1799,51 +1838,51 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@jridgewell/resolve-uri/3.1.0: + /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/resolve-uri/3.1.1: + /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array/1.1.2: + /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/source-map/0.3.3: + /@jridgewell/source-map@0.3.3: resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==} dependencies: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 dev: true - /@jridgewell/sourcemap-codec/1.4.14: + /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/sourcemap-codec/1.4.15: + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping/0.3.18: + /@jridgewell/trace-mapping@0.3.18: resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@jridgewell/trace-mapping/0.3.9: + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@nodelib/fs.scandir/2.1.5: + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: @@ -1851,12 +1890,12 @@ packages: run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat/2.0.5: + /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} dev: true - /@nodelib/fs.walk/1.2.8: + /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} dependencies: @@ -1864,14 +1903,14 @@ packages: fastq: 1.15.0 dev: true - /@npmcli/fs/3.1.0: + /@npmcli/fs@3.1.0: resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.5.1 dev: true - /@npmcli/git/4.1.0: + /@npmcli/git@4.1.0: resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -1887,7 +1926,7 @@ packages: - bluebird dev: true - /@npmcli/installed-package-contents/2.0.2: + /@npmcli/installed-package-contents@2.0.2: resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true @@ -1896,19 +1935,19 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /@npmcli/node-gyp/3.0.0: + /@npmcli/node-gyp@3.0.0: resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /@npmcli/promise-spawn/6.0.2: + /@npmcli/promise-spawn@6.0.2: resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: which: 3.0.1 dev: true - /@npmcli/run-script/6.0.2: + /@npmcli/run-script@6.0.2: resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -1921,14 +1960,14 @@ packages: - supports-color dev: true - /@pkgjs/parseargs/0.11.0: + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true dev: true optional: true - /@rollup/plugin-alias/5.0.0_rollup@3.25.1: + /@rollup/plugin-alias@5.0.0(rollup@3.25.1): resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1941,7 +1980,7 @@ packages: slash: 4.0.0 dev: true - /@rollup/plugin-babel/5.3.1_jnqmneol4xxee3tekczyfkwbhm: + /@rollup/plugin-babel@5.3.1(@babel/core@7.22.5)(rollup@2.77.0): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -1954,17 +1993,17 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-module-imports': 7.22.5 - '@rollup/pluginutils': 3.1.0_rollup@2.77.0 + '@rollup/pluginutils': 3.1.0(rollup@2.77.0) rollup: 2.77.0 dev: true - /@rollup/plugin-commonjs/21.1.0_rollup@2.77.0: + /@rollup/plugin-commonjs@21.1.0(rollup@2.77.0): resolution: {integrity: sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^2.38.3 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.77.0 + '@rollup/pluginutils': 3.1.0(rollup@2.77.0) commondir: 1.0.1 estree-walker: 2.0.2 glob: 7.2.3 @@ -1974,7 +2013,7 @@ packages: rollup: 2.77.0 dev: true - /@rollup/plugin-commonjs/24.1.0_rollup@3.25.1: + /@rollup/plugin-commonjs@24.1.0(rollup@3.25.1): resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1983,7 +2022,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.25.1 + '@rollup/pluginutils': 5.0.2(rollup@3.25.1) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 @@ -1992,7 +2031,7 @@ packages: rollup: 3.25.1 dev: true - /@rollup/plugin-json/6.0.0_rollup@2.77.0: + /@rollup/plugin-json@6.0.0(rollup@2.77.0): resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2001,11 +2040,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@2.77.0 + '@rollup/pluginutils': 5.0.2(rollup@2.77.0) rollup: 2.77.0 dev: true - /@rollup/plugin-json/6.0.0_rollup@3.25.1: + /@rollup/plugin-json@6.0.0(rollup@3.25.1): resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2014,17 +2053,17 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.25.1 + '@rollup/pluginutils': 5.0.2(rollup@3.25.1) rollup: 3.25.1 dev: true - /@rollup/plugin-node-resolve/13.3.0_rollup@2.77.0: + /@rollup/plugin-node-resolve@13.3.0(rollup@2.77.0): resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^2.42.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.77.0 + '@rollup/pluginutils': 3.1.0(rollup@2.77.0) '@types/resolve': 1.17.1 deepmerge: 4.3.1 is-builtin-module: 3.2.1 @@ -2033,7 +2072,7 @@ packages: rollup: 2.77.0 dev: true - /@rollup/plugin-node-resolve/15.1.0_rollup@3.25.1: + /@rollup/plugin-node-resolve@15.1.0(rollup@3.25.1): resolution: {integrity: sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2042,7 +2081,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.25.1 + '@rollup/pluginutils': 5.0.2(rollup@3.25.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 @@ -2051,7 +2090,7 @@ packages: rollup: 3.25.1 dev: true - /@rollup/plugin-replace/5.0.2_rollup@3.25.1: + /@rollup/plugin-replace@5.0.2(rollup@3.25.1): resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2060,12 +2099,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.25.1 + '@rollup/pluginutils': 5.0.2(rollup@3.25.1) magic-string: 0.27.0 rollup: 3.25.1 dev: true - /@rollup/plugin-terser/0.4.3_rollup@2.77.0: + /@rollup/plugin-terser@0.4.3(rollup@2.77.0): resolution: {integrity: sha512-EF0oejTMtkyhrkwCdg0HJ0IpkcaVg1MMSf2olHb2Jp+1mnLM04OhjpJWGma4HobiDTF0WCyViWuvadyE9ch2XA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2080,7 +2119,7 @@ packages: terser: 5.17.7 dev: true - /@rollup/plugin-typescript/8.5.0_sgdkrfzp45lu6nlqvjcchokyqa: + /@rollup/plugin-typescript@8.5.0(rollup@2.77.0)(typescript@4.9.5): resolution: {integrity: sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ==} engines: {node: '>=8.0.0'} peerDependencies: @@ -2091,13 +2130,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.77.0 + '@rollup/pluginutils': 3.1.0(rollup@2.77.0) resolve: 1.22.2 rollup: 2.77.0 typescript: 4.9.5 dev: true - /@rollup/pluginutils/3.1.0_rollup@2.77.0: + /@rollup/pluginutils@3.1.0(rollup@2.77.0): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -2109,7 +2148,7 @@ packages: rollup: 2.77.0 dev: true - /@rollup/pluginutils/5.0.2_rollup@2.77.0: + /@rollup/pluginutils@5.0.2(rollup@2.77.0): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2124,7 +2163,7 @@ packages: rollup: 2.77.0 dev: true - /@rollup/pluginutils/5.0.2_rollup@3.25.1: + /@rollup/pluginutils@5.0.2(rollup@3.25.1): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2139,12 +2178,12 @@ packages: rollup: 3.25.1 dev: true - /@sigstore/protobuf-specs/0.1.0: + /@sigstore/protobuf-specs@0.1.0: resolution: {integrity: sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /@sigstore/tuf/1.0.0: + /@sigstore/tuf@1.0.0: resolution: {integrity: sha512-bLzi9GeZgMCvjJeLUIfs8LJYCxrPRA8IXQkzUtaFKKVPTz0mucRyqFcV2U20yg9K+kYAD0YSitzGfRZCFLjdHQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -2155,33 +2194,33 @@ packages: - supports-color dev: true - /@tootallnate/once/2.0.0: + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true - /@tsconfig/node10/1.0.9: + /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} dev: true - /@tsconfig/node12/1.0.11: + /@tsconfig/node12@1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} dev: true - /@tsconfig/node14/1.0.3: + /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} dev: true - /@tsconfig/node16/1.0.4: + /@tsconfig/node16@1.0.4: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true - /@tufjs/canonical-json/1.0.0: + /@tufjs/canonical-json@1.0.0: resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /@tufjs/models/1.0.4: + /@tufjs/models@1.0.4: resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -2189,66 +2228,66 @@ packages: minimatch: 9.0.2 dev: true - /@types/cross-spawn/6.0.2: + /@types/cross-spawn@6.0.2: resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} dependencies: '@types/node': 20.3.0 dev: true - /@types/estree/0.0.39: + /@types/estree@0.0.39: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true - /@types/estree/1.0.1: + /@types/estree@1.0.1: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true - /@types/json-schema/7.0.12: + /@types/json-schema@7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/minimist/1.2.2: + /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node/14.18.52: + /@types/node@14.18.52: resolution: {integrity: sha512-DGhiXKOHSFVVm+PJD+9Y0ObxXLeG6qwc0HoOn+ooQKeNNu+T2mEJCM5UBDUREKAggl9MHYjb5E71PAmx6MbzIg==} dev: true - /@types/node/20.3.0: + /@types/node@20.3.0: resolution: {integrity: sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==} dev: true - /@types/normalize-package-data/2.4.1: + /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true - /@types/parse-json/4.0.0: + /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} dev: true - /@types/prompts/2.4.4: + /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: '@types/node': 20.3.0 kleur: 3.0.3 dev: true - /@types/resolve/1.17.1: + /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: '@types/node': 20.3.0 dev: true - /@types/resolve/1.20.2: + /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true - /@types/semver/7.5.0: + /@types/semver@7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin/5.59.9_4fmxihdcopu4aswww3w4wmtreq: + /@typescript-eslint/eslint-plugin@5.59.9(@typescript-eslint/parser@5.59.9)(eslint@7.32.0)(typescript@5.1.3): resolution: {integrity: sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2260,23 +2299,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.9_nydeehezxge4zglz7xgffbdlvu + '@typescript-eslint/parser': 5.59.9(eslint@7.32.0)(typescript@5.1.3) '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/type-utils': 5.59.9_nydeehezxge4zglz7xgffbdlvu - '@typescript-eslint/utils': 5.59.9_nydeehezxge4zglz7xgffbdlvu + '@typescript-eslint/type-utils': 5.59.9(eslint@7.32.0)(typescript@5.1.3) + '@typescript-eslint/utils': 5.59.9(eslint@7.32.0)(typescript@5.1.3) debug: 4.3.4 eslint: 7.32.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.1 - tsutils: 3.21.0_typescript@5.1.3 + tsutils: 3.21.0(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.59.9_nydeehezxge4zglz7xgffbdlvu: + /@typescript-eslint/parser@5.59.9(eslint@7.32.0)(typescript@5.1.3): resolution: {integrity: sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2288,7 +2327,7 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.59.9 '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9_typescript@5.1.3 + '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3) debug: 4.3.4 eslint: 7.32.0 typescript: 5.1.3 @@ -2296,7 +2335,7 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.59.9: + /@typescript-eslint/scope-manager@5.59.9: resolution: {integrity: sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -2304,7 +2343,7 @@ packages: '@typescript-eslint/visitor-keys': 5.59.9 dev: true - /@typescript-eslint/type-utils/5.59.9_nydeehezxge4zglz7xgffbdlvu: + /@typescript-eslint/type-utils@5.59.9(eslint@7.32.0)(typescript@5.1.3): resolution: {integrity: sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2314,22 +2353,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.9_typescript@5.1.3 - '@typescript-eslint/utils': 5.59.9_nydeehezxge4zglz7xgffbdlvu + '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3) + '@typescript-eslint/utils': 5.59.9(eslint@7.32.0)(typescript@5.1.3) debug: 4.3.4 eslint: 7.32.0 - tsutils: 3.21.0_typescript@5.1.3 + tsutils: 3.21.0(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.59.9: + /@typescript-eslint/types@5.59.9: resolution: {integrity: sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.59.9_typescript@5.1.3: + /@typescript-eslint/typescript-estree@5.59.9(typescript@5.1.3): resolution: {integrity: sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2344,24 +2383,24 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.1 - tsutils: 3.21.0_typescript@5.1.3 + tsutils: 3.21.0(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.59.9_nydeehezxge4zglz7xgffbdlvu: + /@typescript-eslint/utils@5.59.9(eslint@7.32.0)(typescript@5.1.3): resolution: {integrity: sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@7.32.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.9 '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9_typescript@5.1.3 + '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3) eslint: 7.32.0 eslint-scope: 5.1.1 semver: 7.5.1 @@ -2370,7 +2409,7 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.59.9: + /@typescript-eslint/visitor-keys@5.59.9: resolution: {integrity: sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -2378,7 +2417,7 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /JSONStream/1.3.5: + /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true dependencies: @@ -2386,11 +2425,11 @@ packages: through: 2.3.8 dev: true - /abbrev/1.1.1: + /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true - /acorn-jsx/5.3.2_acorn@7.4.1: + /acorn-jsx@5.3.2(acorn@7.4.1): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2398,34 +2437,34 @@ packages: acorn: 7.4.1 dev: true - /acorn-walk/8.2.0: + /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} dev: true - /acorn/7.4.1: + /acorn@7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /acorn/8.10.0: + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /acorn/8.8.2: + /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /add-stream/1.0.0: + /add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} dev: true - /agent-base/6.0.2: + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: @@ -2434,7 +2473,7 @@ packages: - supports-color dev: true - /agentkeepalive/4.3.0: + /agentkeepalive@4.3.0: resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} engines: {node: '>= 8.0.0'} dependencies: @@ -2445,7 +2484,7 @@ packages: - supports-color dev: true - /aggregate-error/3.1.0: + /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} dependencies: @@ -2453,7 +2492,7 @@ packages: indent-string: 4.0.0 dev: true - /ajv/6.12.6: + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 @@ -2462,7 +2501,7 @@ packages: uri-js: 4.4.1 dev: true - /ajv/8.12.0: + /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: fast-deep-equal: 3.1.3 @@ -2471,58 +2510,58 @@ packages: uri-js: 4.4.1 dev: true - /ansi-align/3.0.1: + /ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: string-width: 4.2.3 dev: true - /ansi-colors/4.1.3: + /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} dev: true - /ansi-escapes/4.3.2: + /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} dependencies: type-fest: 0.21.3 dev: true - /ansi-regex/5.0.1: + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} dev: true - /ansi-regex/6.0.1: + /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} dev: true - /ansi-styles/3.2.1: + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 dev: true - /ansi-styles/4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: true - /ansi-styles/6.2.1: + /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} dev: true - /aproba/2.0.0: + /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} dev: true - /are-we-there-yet/3.0.1: + /are-we-there-yet@3.0.1: resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: @@ -2530,80 +2569,80 @@ packages: readable-stream: 3.6.2 dev: true - /arg/4.1.3: + /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true - /argparse/1.0.10: + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: true - /argparse/2.0.1: + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /array-ify/1.0.0: + /array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true - /array-union/2.1.0: + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /arrify/1.0.1: + /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} dev: true - /astral-regex/2.0.0: + /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} dev: true - /babel-plugin-polyfill-corejs2/0.4.3_@babel+core@7.22.5: + /babel-plugin-polyfill-corejs2@0.4.3(@babel/core@7.22.5): resolution: {integrity: sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.5 '@babel/core': 7.22.5 - '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.5 + '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5) semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3/0.8.1_@babel+core@7.22.5: + /babel-plugin-polyfill-corejs3@0.8.1(@babel/core@7.22.5): resolution: {integrity: sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.5 + '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5) core-js-compat: 3.31.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator/0.5.0_@babel+core@7.22.5: + /babel-plugin-polyfill-regenerator@0.5.0(@babel/core@7.22.5): resolution: {integrity: sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.5 - '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.5 + '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5) transitivePeerDependencies: - supports-color dev: true - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /boxen/5.1.2: + /boxen@5.1.2: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} engines: {node: '>=10'} dependencies: @@ -2617,34 +2656,34 @@ packages: wrap-ansi: 7.0.0 dev: true - /brace-expansion/1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true - /brace-expansion/2.0.1: + /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 dev: true - /braces/3.0.2: + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: true - /brotli-size/4.0.0: + /brotli-size@4.0.0: resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==} engines: {node: '>= 10.16.0'} dependencies: duplexer: 0.1.1 dev: true - /browserslist/4.21.7: + /browserslist@4.21.7: resolution: {integrity: sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2652,25 +2691,25 @@ packages: caniuse-lite: 1.0.30001502 electron-to-chromium: 1.4.427 node-releases: 2.0.12 - update-browserslist-db: 1.0.11_browserslist@4.21.7 + update-browserslist-db: 1.0.11(browserslist@4.21.7) dev: true - /buffer-from/1.1.2: + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /builtin-modules/3.3.0: + /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} dev: true - /builtins/5.0.1: + /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.5.1 dev: true - /cacache/17.1.3: + /cacache@17.1.3: resolution: {integrity: sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -2688,12 +2727,12 @@ packages: unique-filename: 3.0.0 dev: true - /callsites/3.1.0: + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} dev: true - /camelcase-keys/6.2.2: + /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} dependencies: @@ -2702,21 +2741,21 @@ packages: quick-lru: 4.0.1 dev: true - /camelcase/5.3.1: + /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} dev: true - /camelcase/6.3.0: + /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001502: + /caniuse-lite@1.0.30001502: resolution: {integrity: sha512-AZ+9tFXw1sS0o0jcpJQIXvFTOB/xGiQ4OQ2t98QX3NDn2EZTSRBC801gxrsGgViuq2ak/NLkNgSNEPtCr5lfKg==} dev: true - /chalk/2.4.2: + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} dependencies: @@ -2725,7 +2764,7 @@ packages: supports-color: 5.5.0 dev: true - /chalk/4.1.2: + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} dependencies: @@ -2733,34 +2772,34 @@ packages: supports-color: 7.2.0 dev: true - /chalk/5.3.0: + /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true - /chownr/2.0.0: + /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} dev: true - /clean-stack/2.2.0: + /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} dev: true - /cli-boxes/2.2.1: + /cli-boxes@2.2.1: resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} engines: {node: '>=6'} dev: true - /cli-cursor/3.1.0: + /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 dev: true - /cli-truncate/2.1.0: + /cli-truncate@2.1.0: resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} engines: {node: '>=8'} dependencies: @@ -2768,7 +2807,7 @@ packages: string-width: 4.2.3 dev: true - /cliui/7.0.4: + /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 @@ -2776,7 +2815,7 @@ packages: wrap-ansi: 7.0.0 dev: true - /cliui/8.0.1: + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} dependencies: @@ -2785,75 +2824,75 @@ packages: wrap-ansi: 7.0.0 dev: true - /color-convert/1.9.3: + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 dev: true - /color-convert/2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: true - /color-name/1.1.3: + /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: true - /color-name/1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /color-support/1.1.3: + /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true dev: true - /colorette/2.0.20: + /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true - /colors/1.4.0: + /colors@1.4.0: resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} engines: {node: '>=0.1.90'} dev: true - /commander/2.20.3: + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true - /commander/6.2.1: + /commander@6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} dev: true - /commondir/1.0.1: + /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true - /compare-func/2.0.0: + /compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: array-ify: 1.0.0 dot-prop: 5.3.0 dev: true - /concat-map/0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /consola/3.2.3: + /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} dev: true - /console-control-strings/1.1.0: + /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: true - /conventional-changelog-angular/5.0.13: + /conventional-changelog-angular@5.0.13: resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} engines: {node: '>=10'} dependencies: @@ -2861,19 +2900,19 @@ packages: q: 1.5.1 dev: true - /conventional-changelog-angular/6.0.0: + /conventional-changelog-angular@6.0.0: resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} engines: {node: '>=14'} dependencies: compare-func: 2.0.0 dev: true - /conventional-changelog-atom/3.0.0: + /conventional-changelog-atom@3.0.0: resolution: {integrity: sha512-pnN5bWpH+iTUWU3FaYdw5lJmfWeqSyrUkG+wyHBI9tC1dLNnHkbAOg1SzTQ7zBqiFrfo55h40VsGXWMdopwc5g==} engines: {node: '>=14'} dev: true - /conventional-changelog-cli/3.0.0: + /conventional-changelog-cli@3.0.0: resolution: {integrity: sha512-3zMYi0IrfNd6AAHdPMrcgCg5DbcffiqNaEBf8cYrlntXPbBIXaELTbnRmUy5TQAe0Hkgi0J6+/VmRCkkJQflcQ==} engines: {node: '>=14'} hasBin: true @@ -2884,19 +2923,19 @@ packages: tempfile: 3.0.0 dev: true - /conventional-changelog-codemirror/3.0.0: + /conventional-changelog-codemirror@3.0.0: resolution: {integrity: sha512-wzchZt9HEaAZrenZAUUHMCFcuYzGoZ1wG/kTRMICxsnW5AXohYMRxnyecP9ob42Gvn5TilhC0q66AtTPRSNMfw==} engines: {node: '>=14'} dev: true - /conventional-changelog-conventionalcommits/6.1.0: + /conventional-changelog-conventionalcommits@6.1.0: resolution: {integrity: sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==} engines: {node: '>=14'} dependencies: compare-func: 2.0.0 dev: true - /conventional-changelog-core/5.0.1: + /conventional-changelog-core@5.0.1: resolution: {integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==} engines: {node: '>=14'} dependencies: @@ -2913,39 +2952,39 @@ packages: read-pkg-up: 3.0.0 dev: true - /conventional-changelog-ember/3.0.0: + /conventional-changelog-ember@3.0.0: resolution: {integrity: sha512-7PYthCoSxIS98vWhVcSphMYM322OxptpKAuHYdVspryI0ooLDehRXWeRWgN+zWSBXKl/pwdgAg8IpLNSM1/61A==} engines: {node: '>=14'} dev: true - /conventional-changelog-eslint/4.0.0: + /conventional-changelog-eslint@4.0.0: resolution: {integrity: sha512-nEZ9byP89hIU0dMx37JXQkE1IpMmqKtsaR24X7aM3L6Yy/uAtbb+ogqthuNYJkeO1HyvK7JsX84z8649hvp43Q==} engines: {node: '>=14'} dev: true - /conventional-changelog-express/3.0.0: + /conventional-changelog-express@3.0.0: resolution: {integrity: sha512-HqxihpUMfIuxvlPvC6HltA4ZktQEUan/v3XQ77+/zbu8No/fqK3rxSZaYeHYant7zRxQNIIli7S+qLS9tX9zQA==} engines: {node: '>=14'} dev: true - /conventional-changelog-jquery/4.0.0: + /conventional-changelog-jquery@4.0.0: resolution: {integrity: sha512-TTIN5CyzRMf8PUwyy4IOLmLV2DFmPtasKN+x7EQKzwSX8086XYwo+NeaeA3VUT8bvKaIy5z/JoWUvi7huUOgaw==} engines: {node: '>=14'} dev: true - /conventional-changelog-jshint/3.0.0: + /conventional-changelog-jshint@3.0.0: resolution: {integrity: sha512-bQof4byF4q+n+dwFRkJ/jGf9dCNUv4/kCDcjeCizBvfF81TeimPZBB6fT4HYbXgxxfxWXNl/i+J6T0nI4by6DA==} engines: {node: '>=14'} dependencies: compare-func: 2.0.0 dev: true - /conventional-changelog-preset-loader/3.0.0: + /conventional-changelog-preset-loader@3.0.0: resolution: {integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==} engines: {node: '>=14'} dev: true - /conventional-changelog-writer/6.0.0: + /conventional-changelog-writer@6.0.0: resolution: {integrity: sha512-8PyWTnn7zBIt9l4hj4UusFs1TyG+9Ulu1zlOAc72L7Sdv9Hsc8E86ot7htY3HXCVhXHB/NO0pVGvZpwsyJvFfw==} engines: {node: '>=14'} hasBin: true @@ -2959,7 +2998,7 @@ packages: split: 1.0.1 dev: true - /conventional-changelog/4.0.0: + /conventional-changelog@4.0.0: resolution: {integrity: sha512-JbZjwE1PzxQCvm+HUTIr+pbSekS8qdOZzMakdFyPtdkEWwFvwEJYONzjgMm0txCb2yBcIcfKDmg8xtCKTdecNQ==} engines: {node: '>=14'} dependencies: @@ -2976,7 +3015,7 @@ packages: conventional-changelog-preset-loader: 3.0.0 dev: true - /conventional-commits-filter/3.0.0: + /conventional-commits-filter@3.0.0: resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} engines: {node: '>=14'} dependencies: @@ -2984,51 +3023,51 @@ packages: modify-values: 1.0.1 dev: true - /conventional-commits-parser/3.2.4: + /conventional-commits-parser@3.2.4: resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} engines: {node: '>=10'} hasBin: true dependencies: - is-text-path: 1.0.1 JSONStream: 1.3.5 + is-text-path: 1.0.1 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 through2: 4.0.2 dev: true - /conventional-commits-parser/4.0.0: + /conventional-commits-parser@4.0.0: resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} engines: {node: '>=14'} hasBin: true dependencies: - is-text-path: 1.0.1 JSONStream: 1.3.5 + is-text-path: 1.0.1 meow: 8.1.2 split2: 3.2.2 dev: true - /convert-source-map/1.9.0: + /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true - /copy-anything/2.0.6: + /copy-anything@2.0.6: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} dependencies: is-what: 3.14.1 dev: true - /core-js-compat/3.31.0: + /core-js-compat@3.31.0: resolution: {integrity: sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==} dependencies: browserslist: 4.21.7 dev: true - /core-util-is/1.0.3: + /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig-typescript-loader/4.3.0_tjgeulbbgoi5zfqyclbtz5tzzu: + /cosmiconfig-typescript-loader@4.3.0(@types/node@20.3.0)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.3): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -3039,11 +3078,11 @@ packages: dependencies: '@types/node': 20.3.0 cosmiconfig: 8.2.0 - ts-node: 10.9.1_4o3t5ohjtbynkvbqqlfrtrpvay + ts-node: 10.9.1(@types/node@20.3.0)(typescript@5.1.3) typescript: 5.1.3 dev: true - /cosmiconfig/7.1.0: + /cosmiconfig@7.1.0: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} dependencies: @@ -3054,7 +3093,7 @@ packages: yaml: 1.10.2 dev: true - /cosmiconfig/8.2.0: + /cosmiconfig@8.2.0: resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==} engines: {node: '>=14'} dependencies: @@ -3064,11 +3103,11 @@ packages: path-type: 4.0.0 dev: true - /create-require/1.1.1: + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true - /cross-spawn/7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: @@ -3077,16 +3116,16 @@ packages: which: 2.0.2 dev: true - /dargs/7.0.0: + /dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} dev: true - /dateformat/3.0.3: + /dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true - /debug/3.2.7: + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' @@ -3098,7 +3137,7 @@ packages: dev: true optional: true - /debug/4.3.4: + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -3110,7 +3149,7 @@ packages: ms: 2.1.2 dev: true - /decamelize-keys/1.1.1: + /decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} dependencies: @@ -3118,88 +3157,88 @@ packages: map-obj: 1.0.1 dev: true - /decamelize/1.2.0: + /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} dev: true - /dedent/0.7.0: + /dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true - /deep-is/0.1.4: + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deepmerge/4.3.1: + /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} dev: true - /defu/6.1.2: + /defu@6.1.2: resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} dev: true - /delegates/1.0.0: + /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: true - /depd/2.0.0: + /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} dev: true - /diff/4.0.2: + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} dev: true - /dir-glob/3.0.1: + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true - /doctrine/3.0.0: + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 dev: true - /dot-prop/5.3.0: + /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} dependencies: is-obj: 2.0.0 dev: true - /duplexer/0.1.1: + /duplexer@0.1.1: resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==} dev: true - /duplexer/0.1.2: + /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true - /eastasianwidth/0.2.0: + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium/1.4.427: + /electron-to-chromium@1.4.427: resolution: {integrity: sha512-HK3r9l+Jm8dYAm1ctXEWIC+hV60zfcjS9UA5BDlYvnI5S7PU/yytjpvSrTNrSSRRkuu3tDyZhdkwIczh+0DWaw==} dev: true - /emoji-regex/8.0.0: + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /emoji-regex/9.2.2: + /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /encoding/0.1.13: + /encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} requiresBuild: true dependencies: @@ -3207,29 +3246,29 @@ packages: dev: true optional: true - /end-of-stream/1.4.4: + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 dev: true - /enquirer/2.3.6: + /enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 dev: true - /env-paths/2.2.1: + /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} dev: true - /err-code/2.0.3: + /err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} dev: true - /errno/0.1.8: + /errno@0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true requiresBuild: true @@ -3238,13 +3277,13 @@ packages: dev: true optional: true - /error-ex/1.3.2: + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true - /esbuild/0.17.19: + /esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} hasBin: true @@ -3274,27 +3313,27 @@ packages: '@esbuild/win32-x64': 0.17.19 dev: true - /escalade/3.1.1: + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} dev: true - /escape-string-regexp/1.0.5: + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} dev: true - /escape-string-regexp/4.0.0: + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} dev: true - /eslint-define-config/1.21.0: + /eslint-define-config@1.21.0: resolution: {integrity: sha512-OKfreV19Nw4yK4UX1CDkv5FXWdzeF+VSROsO28DVi1BrzqOD4a3U71LJqEhcupK65MoLXxARQ0pSg8bDvNPONA==} engines: {node: ^16.13.0 || >=18.0.0, npm: '>=7.0.0', pnpm: '>= 8.6.0'} dev: true - /eslint-scope/5.1.1: + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} dependencies: @@ -3302,29 +3341,29 @@ packages: estraverse: 4.3.0 dev: true - /eslint-utils/2.1.0: + /eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} engines: {node: '>=6'} dependencies: eslint-visitor-keys: 1.3.0 dev: true - /eslint-visitor-keys/1.3.0: + /eslint-visitor-keys@1.3.0: resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} engines: {node: '>=4'} dev: true - /eslint-visitor-keys/2.1.0: + /eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} dev: true - /eslint-visitor-keys/3.4.1: + /eslint-visitor-keys@3.4.1: resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/7.32.0: + /eslint@7.32.0: resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} engines: {node: ^10.12.0 || >=12.0.0} hasBin: true @@ -3373,59 +3412,59 @@ packages: - supports-color dev: true - /espree/7.3.1: + /espree@7.3.1: resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: acorn: 7.4.1 - acorn-jsx: 5.3.2_acorn@7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) eslint-visitor-keys: 1.3.0 dev: true - /esprima/4.0.1: + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true dev: true - /esquery/1.5.0: + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 dev: true - /esrecurse/4.3.0: + /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true - /estraverse/4.3.0: + /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} dev: true - /estraverse/5.3.0: + /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} dev: true - /estree-walker/1.0.1: + /estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} dev: true - /estree-walker/2.0.2: + /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true - /esutils/2.0.3: + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true - /execa/4.1.0: + /execa@4.1.0: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} dependencies: @@ -3440,7 +3479,7 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa/5.1.1: + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: @@ -3455,15 +3494,15 @@ packages: strip-final-newline: 2.0.0 dev: true - /exponential-backoff/3.1.1: + /exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} dev: true - /fast-deep-equal/3.1.3: + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob/3.2.12: + /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} dependencies: @@ -3474,7 +3513,7 @@ packages: micromatch: 4.0.5 dev: true - /fast-glob/3.3.0: + /fast-glob@3.3.0: resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} engines: {node: '>=8.6.0'} dependencies: @@ -3485,47 +3524,47 @@ packages: micromatch: 4.0.5 dev: true - /fast-json-stable-stringify/2.1.0: + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-levenshtein/2.0.6: + /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq/1.15.0: + /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 dev: true - /file-entry-cache/6.0.1: + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 dev: true - /filesize/6.4.0: + /filesize@6.4.0: resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} engines: {node: '>= 0.4.0'} dev: true - /fill-range/7.0.1: + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true - /find-up/2.1.0: + /find-up@2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} dependencies: locate-path: 2.0.0 dev: true - /find-up/4.1.0: + /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} dependencies: @@ -3533,7 +3572,7 @@ packages: path-exists: 4.0.0 dev: true - /find-up/5.0.0: + /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} dependencies: @@ -3541,7 +3580,7 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache/3.0.4: + /flat-cache@3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: @@ -3549,11 +3588,11 @@ packages: rimraf: 3.0.2 dev: true - /flatted/3.2.7: + /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true - /foreground-child/3.1.1: + /foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} dependencies: @@ -3561,7 +3600,7 @@ packages: signal-exit: 4.0.2 dev: true - /fs-extra/11.1.1: + /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} dependencies: @@ -3570,25 +3609,25 @@ packages: universalify: 2.0.0 dev: true - /fs-minipass/2.1.0: + /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} dependencies: minipass: 3.3.6 dev: true - /fs-minipass/3.0.2: + /fs-minipass@3.0.2: resolution: {integrity: sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 5.0.0 dev: true - /fs.realpath/1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents/2.3.2: + /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] @@ -3596,15 +3635,15 @@ packages: dev: true optional: true - /function-bind/1.1.1: + /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true - /functional-red-black-tree/1.0.1: + /functional-red-black-tree@1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true - /gauge/4.0.4: + /gauge@4.0.4: resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: @@ -3618,21 +3657,21 @@ packages: wide-align: 1.1.5 dev: true - /gensync/1.0.0-beta.2: + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} dev: true - /get-caller-file/2.0.5: + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-own-enumerable-property-symbols/3.0.2: + /get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} dev: true - /get-pkg-repo/4.2.1: + /get-pkg-repo@4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} hasBin: true @@ -3643,19 +3682,19 @@ packages: yargs: 16.2.0 dev: true - /get-stream/5.2.0: + /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: pump: 3.0.0 dev: true - /get-stream/6.0.1: + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true - /git-raw-commits/2.0.11: + /git-raw-commits@2.0.11: resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} engines: {node: '>=10'} hasBin: true @@ -3667,7 +3706,7 @@ packages: through2: 4.0.2 dev: true - /git-raw-commits/3.0.0: + /git-raw-commits@3.0.0: resolution: {integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==} engines: {node: '>=14'} hasBin: true @@ -3677,7 +3716,7 @@ packages: split2: 3.2.2 dev: true - /git-remote-origin-url/2.0.0: + /git-remote-origin-url@2.0.0: resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} engines: {node: '>=4'} dependencies: @@ -3685,7 +3724,7 @@ packages: pify: 2.3.0 dev: true - /git-semver-tags/5.0.0: + /git-semver-tags@5.0.0: resolution: {integrity: sha512-fZ+tmZ1O5aXW/T5nLzZLbxWAHdQTLLXalOECMNAmhoEQSfqZjtaeMjpsXH4C5qVhrICTkVQeQFujB1lKzIHljA==} engines: {node: '>=14'} hasBin: true @@ -3694,20 +3733,20 @@ packages: semver: 6.3.0 dev: true - /gitconfiglocal/1.0.0: + /gitconfiglocal@1.0.0: resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} dependencies: ini: 1.3.8 dev: true - /glob-parent/5.1.2: + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true - /glob/10.3.1: + /glob@10.3.1: resolution: {integrity: sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true @@ -3719,7 +3758,7 @@ packages: path-scurry: 1.10.0 dev: true - /glob/7.2.3: + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 @@ -3730,7 +3769,7 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob/8.1.0: + /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} dependencies: @@ -3741,26 +3780,26 @@ packages: once: 1.4.0 dev: true - /global-dirs/0.1.1: + /global-dirs@0.1.1: resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} engines: {node: '>=4'} dependencies: ini: 1.3.8 dev: true - /globals/11.12.0: + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} dev: true - /globals/13.20.0: + /globals@13.20.0: resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globby/11.1.0: + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: @@ -3772,7 +3811,7 @@ packages: slash: 3.0.0 dev: true - /globby/13.2.2: + /globby@13.2.2: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: @@ -3783,22 +3822,22 @@ packages: slash: 4.0.0 dev: true - /graceful-fs/4.2.11: + /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true - /grapheme-splitter/1.0.4: + /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /gzip-size/6.0.0: + /gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} dependencies: duplexer: 0.1.2 dev: true - /handlebars/4.7.7: + /handlebars@4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} engines: {node: '>=0.4.7'} hasBin: true @@ -3811,59 +3850,59 @@ packages: uglify-js: 3.17.4 dev: true - /hard-rejection/2.1.0: + /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} dev: true - /has-flag/3.0.0: + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} dev: true - /has-flag/4.0.0: + /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} dev: true - /has-unicode/2.0.1: + /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} dev: true - /has/1.0.3: + /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 dev: true - /hookable/5.5.3: + /hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} dev: true - /hosted-git-info/2.8.9: + /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true - /hosted-git-info/4.1.0: + /hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 dev: true - /hosted-git-info/6.1.1: + /hosted-git-info@6.1.1: resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: lru-cache: 7.18.3 dev: true - /http-cache-semantics/4.1.1: + /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true - /http-proxy-agent/5.0.0: + /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} dependencies: @@ -3874,7 +3913,7 @@ packages: - supports-color dev: true - /https-proxy-agent/5.0.1: + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} dependencies: @@ -3884,23 +3923,23 @@ packages: - supports-color dev: true - /human-signals/1.1.1: + /human-signals@1.1.1: resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} engines: {node: '>=8.12.0'} dev: true - /human-signals/2.1.0: + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} dev: true - /humanize-ms/1.2.1: + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: ms: 2.1.2 dev: true - /iconv-lite/0.6.3: + /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} dependencies: @@ -3908,24 +3947,24 @@ packages: dev: true optional: true - /ignore-walk/6.0.3: + /ignore-walk@6.0.3: resolution: {integrity: sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minimatch: 9.0.2 dev: true - /ignore/4.0.6: + /ignore@4.0.6: resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} engines: {node: '>= 4'} dev: true - /ignore/5.2.4: + /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} dev: true - /image-size/0.5.5: + /image-size@0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} engines: {node: '>=0.10.0'} hasBin: true @@ -3933,7 +3972,7 @@ packages: dev: true optional: true - /import-fresh/3.3.0: + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} dependencies: @@ -3941,143 +3980,143 @@ packages: resolve-from: 4.0.0 dev: true - /imurmurhash/0.1.4: + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true - /indent-string/4.0.0: + /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} dev: true - /inflight/1.0.6: + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true - /inherits/2.0.4: + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /ini/1.3.8: + /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /interpret/1.4.0: + /interpret@1.4.0: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} dev: true - /ip/2.0.0: + /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} dev: true - /is-arrayish/0.2.1: + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-builtin-module/3.2.1: + /is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 dev: true - /is-core-module/2.12.1: + /is-core-module@2.12.1: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: has: 1.0.3 dev: true - /is-extglob/2.1.1: + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true - /is-fullwidth-code-point/3.0.0: + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: true - /is-glob/4.0.3: + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true - /is-lambda/1.0.1: + /is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: true - /is-module/1.0.0: + /is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} dev: true - /is-number/7.0.0: + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} dev: true - /is-obj/1.0.1: + /is-obj@1.0.1: resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} engines: {node: '>=0.10.0'} dev: true - /is-obj/2.0.0: + /is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} dev: true - /is-plain-obj/1.1.0: + /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} dev: true - /is-reference/1.2.1: + /is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: '@types/estree': 1.0.1 dev: true - /is-regexp/1.0.0: + /is-regexp@1.0.0: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} engines: {node: '>=0.10.0'} dev: true - /is-stream/2.0.1: + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true - /is-text-path/1.0.1: + /is-text-path@1.0.1: resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} engines: {node: '>=0.10.0'} dependencies: text-extensions: 1.9.0 dev: true - /is-unicode-supported/0.1.0: + /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true - /is-what/3.14.1: + /is-what@3.14.1: resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} dev: true - /isarray/1.0.0: + /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true - /isexe/2.0.0: + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /jackspeak/2.2.1: + /jackspeak@2.2.1: resolution: {integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==} engines: {node: '>=14'} dependencies: @@ -4086,16 +4125,16 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jiti/1.19.1: + /jiti@1.19.1: resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} hasBin: true dev: true - /js-tokens/4.0.0: + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true - /js-yaml/3.14.1: + /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: @@ -4103,64 +4142,64 @@ packages: esprima: 4.0.1 dev: true - /js-yaml/4.1.0: + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 dev: true - /jsesc/0.5.0: + /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true dev: true - /jsesc/2.5.2: + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true dev: true - /json-parse-better-errors/1.0.2: + /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true - /json-parse-even-better-errors/2.3.1: + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true - /json-parse-even-better-errors/3.0.0: + /json-parse-even-better-errors@3.0.0: resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /json-schema-traverse/0.4.1: + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-schema-traverse/1.0.0: + /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true - /json-stable-stringify-without-jsonify/1.0.1: + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stringify-safe/5.0.1: + /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true - /json5/2.2.3: + /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true dev: true - /jsonc-parser/3.2.0: + /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true - /jsonfile/6.1.0: + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.0 @@ -4168,26 +4207,26 @@ packages: graceful-fs: 4.2.11 dev: true - /jsonparse/1.3.1: + /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} dev: true - /kind-of/6.0.3: + /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} dev: true - /kleur/3.0.3: + /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} dev: true - /kolorist/1.8.0: + /kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} dev: true - /less/4.1.3: + /less@4.1.3: resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} engines: {node: '>=6'} hasBin: true @@ -4207,7 +4246,7 @@ packages: - supports-color dev: true - /levn/0.4.1: + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} dependencies: @@ -4215,11 +4254,11 @@ packages: type-check: 0.4.0 dev: true - /lines-and-columns/1.2.4: + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lint-staged/10.5.4: + /lint-staged@10.5.4: resolution: {integrity: sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==} hasBin: true dependencies: @@ -4231,7 +4270,7 @@ packages: dedent: 0.7.0 enquirer: 2.3.6 execa: 4.1.0 - listr2: 3.14.0_enquirer@2.3.6 + listr2: 3.14.0(enquirer@2.3.6) log-symbols: 4.1.0 micromatch: 4.0.5 normalize-path: 3.0.0 @@ -4242,7 +4281,7 @@ packages: - supports-color dev: true - /listr2/3.14.0_enquirer@2.3.6: + /listr2@3.14.0(enquirer@2.3.6): resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} engines: {node: '>=10.0.0'} peerDependencies: @@ -4262,7 +4301,7 @@ packages: wrap-ansi: 7.0.0 dev: true - /load-json-file/4.0.0: + /load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} dependencies: @@ -4272,7 +4311,7 @@ packages: strip-bom: 3.0.0 dev: true - /locate-path/2.0.0: + /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} dependencies: @@ -4280,77 +4319,77 @@ packages: path-exists: 3.0.0 dev: true - /locate-path/5.0.0: + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} dependencies: p-locate: 4.1.0 dev: true - /locate-path/6.0.0: + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true - /lodash.camelcase/4.3.0: + /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: true - /lodash.debounce/4.0.8: + /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: true - /lodash.isfunction/3.0.9: + /lodash.isfunction@3.0.9: resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} dev: true - /lodash.ismatch/4.4.0: + /lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} dev: true - /lodash.isplainobject/4.0.6: + /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} dev: true - /lodash.kebabcase/4.1.1: + /lodash.kebabcase@4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} dev: true - /lodash.merge/4.6.2: + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash.mergewith/4.6.2: + /lodash.mergewith@4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} dev: true - /lodash.snakecase/4.1.1: + /lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} dev: true - /lodash.startcase/4.4.0: + /lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: true - /lodash.truncate/4.4.2: + /lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} dev: true - /lodash.uniq/4.5.0: + /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} dev: true - /lodash.upperfirst/4.3.1: + /lodash.upperfirst@4.3.1: resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} dev: true - /lodash/4.17.21: + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true - /log-symbols/4.1.0: + /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} dependencies: @@ -4358,7 +4397,7 @@ packages: is-unicode-supported: 0.1.0 dev: true - /log-update/4.0.0: + /log-update@4.0.0: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} dependencies: @@ -4368,63 +4407,64 @@ packages: wrap-ansi: 6.2.0 dev: true - /lru-cache/10.0.0: + /lru-cache@10.0.0: resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} engines: {node: 14 || >=16.14} dev: true - /lru-cache/5.1.1: + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 dev: true - /lru-cache/6.0.0: + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true - /lru-cache/7.18.3: + /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} dev: true - /magic-string/0.25.9: + /magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 dev: true - /magic-string/0.27.0: + /magic-string@0.27.0: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /magic-string/0.30.1: + /magic-string@0.30.1: resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /make-dir/2.1.0: + /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} + requiresBuild: true dependencies: pify: 4.0.1 semver: 5.7.1 dev: true optional: true - /make-error/1.3.6: + /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true - /make-fetch-happen/11.1.1: + /make-fetch-happen@11.1.1: resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -4447,17 +4487,17 @@ packages: - supports-color dev: true - /map-obj/1.0.1: + /map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} dev: true - /map-obj/4.3.0: + /map-obj@4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} dev: true - /meow/8.1.2: + /meow@8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} dependencies: @@ -4474,16 +4514,16 @@ packages: yargs-parser: 20.2.9 dev: true - /merge-stream/2.0.0: + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true - /merge2/1.4.1: + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true - /micromatch/4.0.5: + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: @@ -4491,7 +4531,7 @@ packages: picomatch: 2.3.1 dev: true - /mime/1.6.0: + /mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} hasBin: true @@ -4499,37 +4539,37 @@ packages: dev: true optional: true - /mimic-fn/2.1.0: + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} dev: true - /min-indent/1.0.1: + /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} dev: true - /minimatch/3.1.2: + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true - /minimatch/5.1.6: + /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 dev: true - /minimatch/9.0.2: + /minimatch@9.0.2: resolution: {integrity: sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true - /minimist-options/4.1.0: + /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} dependencies: @@ -4538,18 +4578,18 @@ packages: kind-of: 6.0.3 dev: true - /minimist/1.2.8: + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true - /minipass-collect/1.0.2: + /minipass-collect@1.0.2: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} engines: {node: '>= 8'} dependencies: minipass: 3.3.6 dev: true - /minipass-fetch/3.0.3: + /minipass-fetch@3.0.3: resolution: {integrity: sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -4560,47 +4600,47 @@ packages: encoding: 0.1.13 dev: true - /minipass-flush/1.0.5: + /minipass-flush@1.0.5: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} dependencies: minipass: 3.3.6 dev: true - /minipass-json-stream/1.0.1: + /minipass-json-stream@1.0.1: resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} dependencies: jsonparse: 1.3.1 minipass: 3.3.6 dev: true - /minipass-pipeline/1.2.4: + /minipass-pipeline@1.2.4: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} engines: {node: '>=8'} dependencies: minipass: 3.3.6 dev: true - /minipass-sized/1.0.3: + /minipass-sized@1.0.3: resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} engines: {node: '>=8'} dependencies: minipass: 3.3.6 dev: true - /minipass/3.3.6: + /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} dependencies: yallist: 4.0.0 dev: true - /minipass/5.0.0: + /minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} dev: true - /minizlib/2.1.2: + /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} dependencies: @@ -4608,13 +4648,13 @@ packages: yallist: 4.0.0 dev: true - /mkdirp/1.0.4: + /mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true dev: true - /mkdist/1.2.0_typescript@5.1.3: + /mkdist@1.2.0(typescript@5.1.3): resolution: {integrity: sha512-UTqu/bXmIk/+VKNVgufAeMyjUcNy1dn9Bl7wL1zZlCKVrpDgj/VllmZBeh3ZCC/2HWqUrt6frNFTKt9TRZbNvQ==} hasBin: true peerDependencies: @@ -4637,7 +4677,7 @@ packages: typescript: 5.1.3 dev: true - /mlly/1.4.0: + /mlly@1.4.0: resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} dependencies: acorn: 8.10.0 @@ -4646,35 +4686,35 @@ packages: ufo: 1.1.2 dev: true - /modify-values/1.0.1: + /modify-values@1.0.1: resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} engines: {node: '>=0.10.0'} dev: true - /mri/1.2.0: + /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} dev: true - /ms/2.1.2: + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /nanoid/3.3.6: + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true - /natural-compare-lite/1.4.0: + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true - /natural-compare/1.4.0: + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /needle/3.2.0: + /needle@3.2.0: resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==} engines: {node: '>= 4.4.x'} hasBin: true @@ -4688,16 +4728,16 @@ packages: dev: true optional: true - /negotiator/0.6.3: + /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} dev: true - /neo-async/2.6.2: + /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true - /node-gyp/9.4.0: + /node-gyp@9.4.0: resolution: {integrity: sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==} engines: {node: ^12.13 || ^14.13 || >=16} hasBin: true @@ -4717,11 +4757,11 @@ packages: - supports-color dev: true - /node-releases/2.0.12: + /node-releases@2.0.12: resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} dev: true - /nopt/6.0.0: + /nopt@6.0.0: resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} hasBin: true @@ -4729,7 +4769,7 @@ packages: abbrev: 1.1.1 dev: true - /normalize-package-data/2.5.0: + /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 @@ -4738,7 +4778,7 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data/3.0.3: + /normalize-package-data@3.0.3: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} dependencies: @@ -4748,7 +4788,7 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data/5.0.0: + /normalize-package-data@5.0.0: resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -4758,31 +4798,31 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-path/3.0.0: + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true - /npm-bundled/3.0.0: + /npm-bundled@3.0.0: resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: npm-normalize-package-bin: 3.0.1 dev: true - /npm-install-checks/6.1.1: + /npm-install-checks@6.1.1: resolution: {integrity: sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.5.1 dev: true - /npm-normalize-package-bin/3.0.1: + /npm-normalize-package-bin@3.0.1: resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /npm-package-arg/10.1.0: + /npm-package-arg@10.1.0: resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -4792,14 +4832,14 @@ packages: validate-npm-package-name: 5.0.0 dev: true - /npm-packlist/7.0.4: + /npm-packlist@7.0.4: resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: ignore-walk: 6.0.3 dev: true - /npm-pick-manifest/8.0.1: + /npm-pick-manifest@8.0.1: resolution: {integrity: sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -4809,7 +4849,7 @@ packages: semver: 7.5.1 dev: true - /npm-registry-fetch/14.0.5: + /npm-registry-fetch@14.0.5: resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -4824,14 +4864,14 @@ packages: - supports-color dev: true - /npm-run-path/4.0.1: + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: true - /npmlog/6.0.2: + /npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: @@ -4841,20 +4881,20 @@ packages: set-blocking: 2.0.0 dev: true - /once/1.4.0: + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true - /onetime/5.1.2: + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: true - /optionator/0.9.1: + /optionator@0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} dependencies: @@ -4866,66 +4906,66 @@ packages: word-wrap: 1.2.3 dev: true - /p-limit/1.3.0: + /p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} engines: {node: '>=4'} dependencies: p-try: 1.0.0 dev: true - /p-limit/2.3.0: + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} dependencies: p-try: 2.2.0 dev: true - /p-limit/3.1.0: + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true - /p-locate/2.0.0: + /p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} dependencies: p-limit: 1.3.0 dev: true - /p-locate/4.1.0: + /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} dependencies: p-limit: 2.3.0 dev: true - /p-locate/5.0.0: + /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true - /p-map/4.0.0: + /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 dev: true - /p-try/1.0.0: + /p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} dev: true - /p-try/2.2.0: + /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} dev: true - /pacote/15.2.0: + /pacote@15.2.0: resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true @@ -4953,14 +4993,14 @@ packages: - supports-color dev: true - /parent-module/1.0.1: + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true - /parse-json/4.0.0: + /parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} dependencies: @@ -4968,7 +5008,7 @@ packages: json-parse-better-errors: 1.0.2 dev: true - /parse-json/5.2.0: + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: @@ -4978,36 +5018,36 @@ packages: lines-and-columns: 1.2.4 dev: true - /parse-node-version/1.0.1: + /parse-node-version@1.0.1: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} engines: {node: '>= 0.10'} dev: true - /path-exists/3.0.0: + /path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} dev: true - /path-exists/4.0.0: + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: true - /path-is-absolute/1.0.1: + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} dev: true - /path-key/3.1.1: + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} dev: true - /path-parse/1.0.7: + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry/1.10.0: + /path-scurry@1.10.0: resolution: {integrity: sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==} engines: {node: '>=16 || 14 >=14.17'} dependencies: @@ -5015,48 +5055,48 @@ packages: minipass: 5.0.0 dev: true - /path-type/3.0.0: + /path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} dependencies: pify: 3.0.0 dev: true - /path-type/4.0.0: + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} dev: true - /pathe/1.1.1: + /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: true - /picocolors/1.0.0: + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true - /picomatch/2.3.1: + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true - /pify/2.3.0: + /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} dev: true - /pify/3.0.0: + /pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} dev: true - /pify/4.0.1: + /pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} dev: true optional: true - /pkg-types/1.0.3: + /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 @@ -5064,13 +5104,13 @@ packages: pathe: 1.1.1 dev: true - /please-upgrade-node/3.2.0: + /please-upgrade-node@3.2.0: resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} dependencies: semver-compare: 1.0.0 dev: true - /postcss/8.4.24: + /postcss@8.4.24: resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} engines: {node: ^10 || ^12 || >=14} dependencies: @@ -5079,37 +5119,37 @@ packages: source-map-js: 1.0.2 dev: true - /prelude-ls/1.2.1: + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true - /prettier/2.8.8: + /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true dev: true - /pretty-bytes/6.1.0: + /pretty-bytes@6.1.0: resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==} engines: {node: ^14.13.1 || >=16.0.0} dev: true - /proc-log/3.0.0: + /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /process-nextick-args/2.0.1: + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /progress/2.0.3: + /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} dev: true - /promise-inflight/1.0.1: + /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: bluebird: '*' @@ -5118,7 +5158,7 @@ packages: optional: true dev: true - /promise-retry/2.0.1: + /promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} dependencies: @@ -5126,7 +5166,7 @@ packages: retry: 0.12.0 dev: true - /prompts/2.4.2: + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} dependencies: @@ -5134,44 +5174,44 @@ packages: sisteransi: 1.0.5 dev: true - /prr/1.0.1: + /prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} dev: true optional: true - /pump/3.0.0: + /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 dev: true - /punycode/2.3.0: + /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} dev: true - /q/1.5.1: + /q@1.5.1: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} dev: true - /queue-microtask/1.2.3: + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /quick-lru/4.0.1: + /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} dev: true - /randombytes/2.1.0: + /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 dev: true - /read-package-json-fast/3.0.2: + /read-package-json-fast@3.0.2: resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -5179,7 +5219,7 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /read-package-json/6.0.4: + /read-package-json@6.0.4: resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -5189,7 +5229,7 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /read-pkg-up/3.0.0: + /read-pkg-up@3.0.0: resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} engines: {node: '>=4'} dependencies: @@ -5197,7 +5237,7 @@ packages: read-pkg: 3.0.0 dev: true - /read-pkg-up/7.0.1: + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} dependencies: @@ -5206,7 +5246,7 @@ packages: type-fest: 0.8.1 dev: true - /read-pkg/3.0.0: + /read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} dependencies: @@ -5215,7 +5255,7 @@ packages: path-type: 3.0.0 dev: true - /read-pkg/5.2.0: + /read-pkg@5.2.0: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: @@ -5225,7 +5265,7 @@ packages: type-fest: 0.6.0 dev: true - /readable-stream/2.3.8: + /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 @@ -5237,7 +5277,7 @@ packages: util-deprecate: 1.0.2 dev: true - /readable-stream/3.6.2: + /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} dependencies: @@ -5246,14 +5286,14 @@ packages: util-deprecate: 1.0.2 dev: true - /rechoir/0.6.2: + /rechoir@0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} dependencies: resolve: 1.22.2 dev: true - /redent/3.0.0: + /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} dependencies: @@ -5261,32 +5301,32 @@ packages: strip-indent: 3.0.0 dev: true - /regenerate-unicode-properties/10.1.0: + /regenerate-unicode-properties@10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} engines: {node: '>=4'} dependencies: regenerate: 1.4.2 dev: true - /regenerate/1.4.2: + /regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true - /regenerator-runtime/0.13.11: + /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - /regenerator-transform/0.15.1: + /regenerator-transform@0.15.1: resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} dependencies: '@babel/runtime': 7.22.5 dev: true - /regexpp/3.2.0: + /regexpp@3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} dev: true - /regexpu-core/5.3.2: + /regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} dependencies: @@ -5298,41 +5338,41 @@ packages: unicode-match-property-value-ecmascript: 2.1.0 dev: true - /regjsparser/0.9.1: + /regjsparser@0.9.1: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true dependencies: jsesc: 0.5.0 dev: true - /require-directory/2.1.1: + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} dev: true - /require-from-string/2.0.2: + /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} dev: true - /resolve-from/4.0.0: + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: true - /resolve-from/5.0.0: + /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} dev: true - /resolve-global/1.0.0: + /resolve-global@1.0.0: resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} engines: {node: '>=8'} dependencies: global-dirs: 0.1.1 dev: true - /resolve/1.22.2: + /resolve@1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: @@ -5341,7 +5381,7 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor/3.1.0: + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} dependencies: @@ -5349,28 +5389,28 @@ packages: signal-exit: 3.0.7 dev: true - /retry/0.12.0: + /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} dev: true - /reusify/1.0.4: + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rfdc/1.3.0: + /rfdc@1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} dev: true - /rimraf/3.0.2: + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.3 dev: true - /rollup-plugin-dts/5.3.0_n7ipjawvwu73gcznr6o2d3ryby: + /rollup-plugin-dts@5.3.0(rollup@3.25.1)(typescript@5.1.3): resolution: {integrity: sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ==} engines: {node: '>=v14'} peerDependencies: @@ -5384,7 +5424,7 @@ packages: '@babel/code-frame': 7.22.5 dev: true - /rollup-plugin-filesize/10.0.0: + /rollup-plugin-filesize@10.0.0: resolution: {integrity: sha512-JAYYhzCcmGjmCzo3LEHSDE3RAPHKIeBdpqRhiyZSv5o/3wFhktUOzYAWg/uUKyEu5dEaVaql6UOmaqHx1qKrZA==} engines: {node: '>=16.0.0'} dependencies: @@ -5401,7 +5441,7 @@ packages: - supports-color dev: true - /rollup/2.77.0: + /rollup@2.77.0: resolution: {integrity: sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==} engines: {node: '>=10.0.0'} hasBin: true @@ -5409,7 +5449,7 @@ packages: fsevents: 2.3.2 dev: true - /rollup/3.25.1: + /rollup@3.25.1: resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true @@ -5417,55 +5457,55 @@ packages: fsevents: 2.3.2 dev: true - /run-parallel/1.2.0: + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /rxjs/7.8.1: + /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: tslib: 2.5.3 dev: true - /safe-buffer/5.1.2: + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true - /safe-buffer/5.2.1: + /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safer-buffer/2.1.2: + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true optional: true - /sax/1.2.4: + /sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: true optional: true - /scule/1.0.0: + /scule@1.0.0: resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} dev: true - /semver-compare/1.0.0: + /semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} dev: true - /semver/5.7.1: + /semver@5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true dev: true - /semver/6.3.0: + /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true dev: true - /semver/7.5.0: + /semver@7.5.0: resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} engines: {node: '>=10'} hasBin: true @@ -5473,7 +5513,7 @@ packages: lru-cache: 6.0.0 dev: true - /semver/7.5.1: + /semver@7.5.1: resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} engines: {node: '>=10'} hasBin: true @@ -5481,29 +5521,29 @@ packages: lru-cache: 6.0.0 dev: true - /serialize-javascript/6.0.1: + /serialize-javascript@6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: randombytes: 2.1.0 dev: true - /set-blocking/2.0.0: + /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true - /shebang-command/2.0.0: + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true - /shebang-regex/3.0.0: + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true - /shelljs/0.8.5: + /shelljs@0.8.5: resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} engines: {node: '>=4'} hasBin: true @@ -5513,16 +5553,16 @@ packages: rechoir: 0.6.2 dev: true - /signal-exit/3.0.7: + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /signal-exit/4.0.2: + /signal-exit@4.0.2: resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} engines: {node: '>=14'} dev: true - /sigstore/1.6.0: + /sigstore@1.6.0: resolution: {integrity: sha512-QODKff/qW/TXOZI6V/Clqu74xnInAS6it05mufj4/fSewexLtfEntgLZZcBtUK44CDQyUE5TUXYy1ARYzlfG9g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true @@ -5535,21 +5575,21 @@ packages: - supports-color dev: true - /sisteransi/1.0.5: + /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true - /slash/3.0.0: + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} dev: true - /slash/4.0.0: + /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} dev: true - /slice-ansi/3.0.0: + /slice-ansi@3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} dependencies: @@ -5558,7 +5598,7 @@ packages: is-fullwidth-code-point: 3.0.0 dev: true - /slice-ansi/4.0.0: + /slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} dependencies: @@ -5567,16 +5607,16 @@ packages: is-fullwidth-code-point: 3.0.0 dev: true - /smart-buffer/4.2.0: + /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} dev: true - /smob/1.4.0: + /smob@1.4.0: resolution: {integrity: sha512-MqR3fVulhjWuRNSMydnTlweu38UhQ0HXM4buStD/S3mc/BzX3CuM9OmhyQpmtYCvoYdl5ris6TI0ZqH355Ymqg==} dev: true - /socks-proxy-agent/7.0.0: + /socks-proxy-agent@7.0.0: resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} engines: {node: '>= 10'} dependencies: @@ -5587,7 +5627,7 @@ packages: - supports-color dev: true - /socks/2.7.1: + /socks@2.7.1: resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} dependencies: @@ -5595,79 +5635,79 @@ packages: smart-buffer: 4.2.0 dev: true - /source-map-js/1.0.2: + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} dev: true - /source-map-support/0.5.21: + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true - /source-map/0.6.1: + /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} dev: true - /sourcemap-codec/1.4.8: + /sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead dev: true - /spdx-correct/3.2.0: + /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.13 dev: true - /spdx-exceptions/2.3.0: + /spdx-exceptions@2.3.0: resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} dev: true - /spdx-expression-parse/3.0.1: + /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 dev: true - /spdx-license-ids/3.0.13: + /spdx-license-ids@3.0.13: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: true - /split/1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: - through: 2.3.8 + readable-stream: 3.6.2 dev: true - /split2/3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + /split@1.0.1: + resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} dependencies: - readable-stream: 3.6.2 + through: 2.3.8 dev: true - /sprintf-js/1.0.3: + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /ssri/10.0.4: + /ssri@10.0.4: resolution: {integrity: sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 5.0.0 dev: true - /string-argv/0.3.1: + /string-argv@0.3.1: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} engines: {node: '>=0.6.19'} dev: true - /string-width/4.2.3: + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: @@ -5676,7 +5716,7 @@ packages: strip-ansi: 6.0.1 dev: true - /string-width/5.1.2: + /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} dependencies: @@ -5685,19 +5725,19 @@ packages: strip-ansi: 7.1.0 dev: true - /string_decoder/1.1.1: + /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 dev: true - /string_decoder/1.3.0: + /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 dev: true - /stringify-object/3.3.0: + /stringify-object@3.3.0: resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} engines: {node: '>=4'} dependencies: @@ -5706,62 +5746,62 @@ packages: is-regexp: 1.0.0 dev: true - /strip-ansi/6.0.1: + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: true - /strip-ansi/7.1.0: + /strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 dev: true - /strip-bom/3.0.0: + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} dev: true - /strip-final-newline/2.0.0: + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} dev: true - /strip-indent/3.0.0: + /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} dependencies: min-indent: 1.0.1 dev: true - /strip-json-comments/3.1.1: + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /supports-color/5.5.0: + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: has-flag: 3.0.0 dev: true - /supports-color/7.2.0: + /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: true - /supports-preserve-symlinks-flag/1.0.0: + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} dev: true - /table/6.8.1: + /table@6.8.1: resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} engines: {node: '>=10.0.0'} dependencies: @@ -5772,7 +5812,7 @@ packages: strip-ansi: 6.0.1 dev: true - /tar/6.1.15: + /tar@6.1.15: resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} engines: {node: '>=10'} dependencies: @@ -5784,12 +5824,12 @@ packages: yallist: 4.0.0 dev: true - /temp-dir/2.0.0: + /temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} dev: true - /tempfile/3.0.0: + /tempfile@3.0.0: resolution: {integrity: sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==} engines: {node: '>=8'} dependencies: @@ -5797,7 +5837,7 @@ packages: uuid: 3.4.0 dev: true - /terser/5.17.7: + /terser@5.17.7: resolution: {integrity: sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ==} engines: {node: '>=10'} hasBin: true @@ -5808,50 +5848,50 @@ packages: source-map-support: 0.5.21 dev: true - /text-extensions/1.9.0: + /text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} dev: true - /text-table/0.2.0: + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /through/2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - - /through2/2.0.5: + /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: readable-stream: 2.3.8 xtend: 4.0.2 dev: true - /through2/4.0.2: + /through2@4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.2 dev: true - /to-fast-properties/2.0.0: + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} dev: true - /to-regex-range/5.0.1: + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true - /trim-newlines/3.0.1: + /trim-newlines@3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} dev: true - /ts-node/10.9.1_4o3t5ohjtbynkvbqqlfrtrpvay: + /ts-node@10.9.1(@types/node@20.3.0)(typescript@5.1.3): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -5882,15 +5922,15 @@ packages: yn: 3.1.1 dev: true - /tslib/1.14.1: + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.5.3: + /tslib@2.5.3: resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} dev: true - /tsutils/3.21.0_typescript@5.1.3: + /tsutils@3.21.0(typescript@5.1.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: @@ -5900,7 +5940,7 @@ packages: typescript: 5.1.3 dev: true - /tuf-js/1.1.7: + /tuf-js@1.1.7: resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: @@ -5911,55 +5951,55 @@ packages: - supports-color dev: true - /type-check/0.4.0: + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 dev: true - /type-fest/0.18.1: + /type-fest@0.18.1: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} dev: true - /type-fest/0.20.2: + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - /type-fest/0.21.3: + /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} dev: true - /type-fest/0.6.0: + /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} dev: true - /type-fest/0.8.1: + /type-fest@0.8.1: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} dev: true - /typescript/4.9.5: + /typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /typescript/5.1.3: + /typescript@5.1.3: resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} engines: {node: '>=14.17'} hasBin: true dev: true - /ufo/1.1.2: + /ufo@1.1.2: resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} dev: true - /uglify-js/3.17.4: + /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} hasBin: true @@ -5967,16 +6007,16 @@ packages: dev: true optional: true - /unbuild/1.2.1: + /unbuild@1.2.1: resolution: {integrity: sha512-J4efk69Aye43tWcBPCsLK7TIRppGrEN4pAlDzRKo3HSE6MgTSTBxSEuE3ccx7ixc62JvGQ/CoFXYqqF2AHozow==} hasBin: true dependencies: - '@rollup/plugin-alias': 5.0.0_rollup@3.25.1 - '@rollup/plugin-commonjs': 24.1.0_rollup@3.25.1 - '@rollup/plugin-json': 6.0.0_rollup@3.25.1 - '@rollup/plugin-node-resolve': 15.1.0_rollup@3.25.1 - '@rollup/plugin-replace': 5.0.2_rollup@3.25.1 - '@rollup/pluginutils': 5.0.2_rollup@3.25.1 + '@rollup/plugin-alias': 5.0.0(rollup@3.25.1) + '@rollup/plugin-commonjs': 24.1.0(rollup@3.25.1) + '@rollup/plugin-json': 6.0.0(rollup@3.25.1) + '@rollup/plugin-node-resolve': 15.1.0(rollup@3.25.1) + '@rollup/plugin-replace': 5.0.2(rollup@3.25.1) + '@rollup/pluginutils': 5.0.2(rollup@3.25.1) chalk: 5.3.0 consola: 3.2.3 defu: 6.1.2 @@ -5985,14 +6025,14 @@ packages: hookable: 5.5.3 jiti: 1.19.1 magic-string: 0.30.1 - mkdist: 1.2.0_typescript@5.1.3 + mkdist: 1.2.0(typescript@5.1.3) mlly: 1.4.0 mri: 1.2.0 pathe: 1.1.1 pkg-types: 1.0.3 pretty-bytes: 6.1.0 rollup: 3.25.1 - rollup-plugin-dts: 5.3.0_n7ipjawvwu73gcznr6o2d3ryby + rollup-plugin-dts: 5.3.0(rollup@3.25.1)(typescript@5.1.3) scule: 1.0.0 typescript: 5.1.3 untyped: 1.3.2 @@ -6001,12 +6041,12 @@ packages: - supports-color dev: true - /unicode-canonical-property-names-ecmascript/2.0.0: + /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} dev: true - /unicode-match-property-ecmascript/2.0.0: + /unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} dependencies: @@ -6014,36 +6054,36 @@ packages: unicode-property-aliases-ecmascript: 2.1.0 dev: true - /unicode-match-property-value-ecmascript/2.1.0: + /unicode-match-property-value-ecmascript@2.1.0: resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} engines: {node: '>=4'} dev: true - /unicode-property-aliases-ecmascript/2.1.0: + /unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} dev: true - /unique-filename/3.0.0: + /unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: unique-slug: 4.0.0 dev: true - /unique-slug/4.0.0: + /unique-slug@4.0.0: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 dev: true - /universalify/2.0.0: + /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} dev: true - /untyped/1.3.2: + /untyped@1.3.2: resolution: {integrity: sha512-z219Z65rOGD6jXIvIhpZFfwWdqQckB8sdZec2NO+TkcH1Bph7gL0hwLzRJs1KsOo4Jz4mF9guBXhsEnyEBGVfw==} hasBin: true dependencies: @@ -6058,7 +6098,7 @@ packages: - supports-color dev: true - /update-browserslist-db/1.0.11_browserslist@4.21.7: + /update-browserslist-db@1.0.11(browserslist@4.21.7): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: @@ -6069,45 +6109,45 @@ packages: picocolors: 1.0.0 dev: true - /uri-js/4.4.1: + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 dev: true - /util-deprecate/1.0.2: + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /uuid/3.4.0: + /uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true dev: true - /v8-compile-cache-lib/3.0.1: + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-compile-cache/2.3.0: + /v8-compile-cache@2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true - /validate-npm-package-license/3.0.4: + /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: true - /validate-npm-package-name/5.0.0: + /validate-npm-package-name@5.0.0: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: builtins: 5.0.1 dev: true - /vite/4.3.9_less@4.1.3: + /vite@4.3.9(@types/node@20.3.0)(less@4.1.3): resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -6132,6 +6172,7 @@ packages: terser: optional: true dependencies: + '@types/node': 20.3.0 esbuild: 0.17.19 less: 4.1.3 postcss: 8.4.24 @@ -6140,7 +6181,7 @@ packages: fsevents: 2.3.2 dev: true - /which/2.0.2: + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -6148,7 +6189,7 @@ packages: isexe: 2.0.0 dev: true - /which/3.0.1: + /which@3.0.1: resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true @@ -6156,29 +6197,29 @@ packages: isexe: 2.0.0 dev: true - /wide-align/1.1.5: + /wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: string-width: 4.2.3 dev: true - /widest-line/3.1.0: + /widest-line@3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} dependencies: string-width: 4.2.3 dev: true - /word-wrap/1.2.3: + /word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} dev: true - /wordwrap/1.0.0: + /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true - /wrap-ansi/6.2.0: + /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} dependencies: @@ -6187,7 +6228,7 @@ packages: strip-ansi: 6.0.1 dev: true - /wrap-ansi/7.0.0: + /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: @@ -6196,7 +6237,7 @@ packages: strip-ansi: 6.0.1 dev: true - /wrap-ansi/8.1.0: + /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} dependencies: @@ -6205,44 +6246,44 @@ packages: strip-ansi: 7.1.0 dev: true - /wrappy/1.0.2: + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /xtend/4.0.2: + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} dev: true - /y18n/5.0.8: + /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} dev: true - /yallist/3.1.1: + /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true - /yallist/4.0.0: + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yaml/1.10.2: + /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} dev: true - /yargs-parser/20.2.9: + /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} dev: true - /yargs-parser/21.1.1: + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} dev: true - /yargs/16.2.0: + /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} dependencies: @@ -6255,7 +6296,7 @@ packages: yargs-parser: 20.2.9 dev: true - /yargs/17.7.2: + /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} dependencies: @@ -6268,12 +6309,12 @@ packages: yargs-parser: 21.1.1 dev: true - /yn/3.1.1: + /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} dev: true - /yocto-queue/0.1.0: + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true From 1ebd80cf98139069b14aa9a9b4f46cd20c4bc971 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Thu, 20 Jul 2023 12:19:02 +0800 Subject: [PATCH 02/19] fix: revert package.json --- packages/core/package.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index aefc649..0b8fca4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -3,7 +3,16 @@ "version": "1.0.39", "description": "Web components quark-element", "type": "module", - "main": "./src/index.ts", + "main": "./lib/index.umd.js", + "module": "./lib/index.js", + "types": "./lib/index.d.ts", + "exports": { + ".": { + "import": "./lib/index.js", + "require": "./lib/index.umd.js", + "types": "./lib/index.d.ts" + } + }, "browserslist": "chrome >= 53, edge >= 79, firefox >= 63, opera >= 40, safari >= 10.1, ChromeAndroid >= 53, FirefoxAndroid >= 63, ios_saf >= 10.3, Samsung >= 6.0", "files": [ "lib/*", From c755dc599e882b624c950c2751de0f04408cef59 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Thu, 20 Jul 2023 18:22:33 +0800 Subject: [PATCH 03/19] fix: implement watcher queue --- packages/core/package.json | 11 +--- packages/core/src/computed.ts | 107 +++++++++++++++++++++++++++------- packages/core/src/index.ts | 25 +++++--- 3 files changed, 104 insertions(+), 39 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 0b8fca4..aefc649 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -3,16 +3,7 @@ "version": "1.0.39", "description": "Web components quark-element", "type": "module", - "main": "./lib/index.umd.js", - "module": "./lib/index.js", - "types": "./lib/index.d.ts", - "exports": { - ".": { - "import": "./lib/index.js", - "require": "./lib/index.umd.js", - "types": "./lib/index.d.ts" - } - }, + "main": "./src/index.ts", "browserslist": "chrome >= 53, edge >= 79, firefox >= 63, opera >= 40, safari >= 10.1, ChromeAndroid >= 53, FirefoxAndroid >= 63, ios_saf >= 10.3, Samsung >= 6.0", "files": [ "lib/*", diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts index b8801c6..2951e1f 100644 --- a/packages/core/src/computed.ts +++ b/packages/core/src/computed.ts @@ -4,11 +4,58 @@ import { QuarkElement } from "." let uid = 0 /** current watcher that is collecting it's dependencies */ -export let currDepTarget: Watcher| undefined +export let currDepTarget: Watcher | undefined export type WatcherGetter = () => any +/** all watchers waiting to run callback */ +const watchers: Watcher[] = [] +/** all waiting watchers' id */ +const watcherIds = new Set() +/** is there any flush task pending —— before entering next event loop */ +let flushPending = false + +/** prepare micro task */ +const queueMicroTask = (callback: (...args: any[]) => any) => { + if (typeof window.queueMicrotask === 'function') { + window.queueMicrotask(callback) + } else { + Promise.resolve().then(callback) + } +}; + +/** flush watcher queue */ +const flushWatcherQueue = () => { + for (let i = 0; i < watchers.length; i++) { + const watcher = watchers[i] + watcherIds.delete(watcher.id) + watcher.run() + } + + // reset + watchers.length = 0 + watcherIds.clear() + flushPending = false +} + +/** add watcher to queue */ +const queueWatcher = (watcher: Watcher) => { + const { id } = watcher + + if (!watcherIds.has(id)) { + watcherIds.add(id) + watchers.push(watcher) + + if (!flushPending) { + flushPending = true + queueMicroTask(flushWatcherQueue) + } + } +} + export class Watcher { + /** watcher's id */ + id: number /** * watcher itself can be dependency of others' * @@ -37,6 +84,7 @@ export class Watcher { computed: boolean = false, cb: (newVal: any, oldVal: any) => void = () => {} ) { + this.id = ++uid this.inst = inst this.computed = computed @@ -59,32 +107,25 @@ export class Watcher { /** get latest computed value of watcher */ get() { - this.dep.depend() - if (this.dirty) { - return this.updateAndGet() + this.value = this.compute() + this.dirty = false } return this.value } /** invoke getter, recompute value, manage dependencies */ - updateAndGet() { - const oldValue = this.value + compute() { setCurrDepTarget(this) + // reset deps collection this.oldDeps = this.deps this.deps = new Map() - // * invoke getter and collect new dependencies - this.value = this.getter.call(this.inst) - this.dirty = false + // invoke getter and collect new dependencies + const value = this.getter.call(this.inst) popCurrDepTarget() this.cleanDeps() - - if (this.value !== oldValue) { - this.cb.call(this.inst, this.value, oldValue) - } - - return this.value + return value } /** clean invalidated dependencies */ @@ -113,13 +154,39 @@ export class Watcher { } } + /** invoke callback after successfully updated */ + ensureUpdated(cb: (newValue: any, oldValue: any) => void) { + const value = this.compute() + const oldValue = this.value + + if (value !== oldValue) { + this.value = value + this.dirty = false + cb.call(this.inst, value, oldValue) + } + } + /** receive update notification from it's dependency */ update() { - this.dirty = true - // dependency changed, prepare update for it's watchers - this.updateAndGet() - // * notify watchers of this watcher - this.dep.notify() + if (this.computed) { + if (!this.dep.watchers.size) { + // if no watcher is watching this computed value, simply mark it dirty + // its watchers' count may change during app's execution + this.dirty = true + } else { + // * notify watchers of this watcher(for computed) + this.ensureUpdated(() => { + this.dep.notify() + }) + } + } else { + queueWatcher(this) + } + } + + /** run callback of watcher */ + run() { + this.ensureUpdated(this.cb) } } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index ad12dae..2f64968 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -255,11 +255,11 @@ export class QuarkElement extends HTMLElement { } return val; }, - set(this: QuarkElement, value: string | boolean | null) { - let val = value as string; + set(this: QuarkElement, newValue: string | boolean | null) { + let val = newValue; if (isFunction(options.converter)) { - val = options.converter(value, options.type) as string; + val = options.converter(newValue, options.type); } if (val) { @@ -281,21 +281,27 @@ export class QuarkElement extends HTMLElement { // 内部属性装饰器 protected static getStateDescriptor(name: string): () => PropertyDescriptor { return (defaultValue?: any) => { - let _value = defaultValue; + let value = defaultValue; let dep: Dep | undefined; const getDep = () => dep || (dep = new Dep()); return { get(this: QuarkElement): any { getDep().depend() - return _value; + return value; }, - set(this: QuarkElement, value: string | boolean | null) { - const oldValue = _value - _value = value; + set(this: QuarkElement, newValue: string | boolean | null) { + const oldValue = value; + + if (oldValue === newValue) { + return; + } + + value = newValue; getDep().notify(); this._render(); + if (isFunction(this.componentDidUpdate)) { - this.componentDidUpdate(name, oldValue,value); + this.componentDidUpdate(name, oldValue, newValue); } }, configurable: true, @@ -329,6 +335,7 @@ export class QuarkElement extends HTMLElement { watcher = new Watcher(this, descriptor.get!, true); } + watcher.dep.depend(); return watcher.get(); }, }; From f57d10e02b2763a09940b6e39cc2115f9a082af0 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Thu, 20 Jul 2023 18:22:56 +0800 Subject: [PATCH 04/19] fix: revert package.json --- packages/core/package.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index aefc649..0b8fca4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -3,7 +3,16 @@ "version": "1.0.39", "description": "Web components quark-element", "type": "module", - "main": "./src/index.ts", + "main": "./lib/index.umd.js", + "module": "./lib/index.js", + "types": "./lib/index.d.ts", + "exports": { + ".": { + "import": "./lib/index.js", + "require": "./lib/index.umd.js", + "types": "./lib/index.d.ts" + } + }, "browserslist": "chrome >= 53, edge >= 79, firefox >= 63, opera >= 40, safari >= 10.1, ChromeAndroid >= 53, FirefoxAndroid >= 63, ios_saf >= 10.3, Samsung >= 6.0", "files": [ "lib/*", From 22f8bb90a80481a86a79e6aa51a65a42d458b4ec Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Fri, 21 Jul 2023 11:05:54 +0800 Subject: [PATCH 05/19] fix: prevent NaN comparison problem --- packages/core/src/computed.ts | 10 ++++++---- packages/core/src/index.ts | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts index 2951e1f..b05928d 100644 --- a/packages/core/src/computed.ts +++ b/packages/core/src/computed.ts @@ -159,11 +159,13 @@ export class Watcher { const value = this.compute() const oldValue = this.value - if (value !== oldValue) { - this.value = value - this.dirty = false - cb.call(this.inst, value, oldValue) + if (Object.is(value, oldValue)) { + return; } + + this.value = value + this.dirty = false + cb.call(this.inst, value, oldValue) } /** receive update notification from it's dependency */ diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 2f64968..aa95dfd 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -292,7 +292,7 @@ export class QuarkElement extends HTMLElement { set(this: QuarkElement, newValue: string | boolean | null) { const oldValue = value; - if (oldValue === newValue) { + if (Object.is(oldValue, newValue)) { return; } From f31fc71ae9e54de18a1950caee8b42727ac940a1 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Fri, 21 Jul 2023 13:12:52 +0800 Subject: [PATCH 06/19] fix: revert newValue logic --- packages/core/src/index.ts | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index aa95dfd..5b1175f 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -459,18 +459,7 @@ export class QuarkElement extends HTMLElement { return; } - const instValue = this[name]; - let newValue = instValue; - - if (!newValue) { - newValue = value - - if (instValue !== newValue) { - // * make sure this[name] equals to newValue - this[name] = newValue - } - } - + const newValue = this[name] || value; PropertyDepMap .get(Object.getPrototypeOf(this.constructor)) ?.get(name) From d8d9ed90df73ec6053f23ff18514f5dd40cc5916 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Tue, 25 Jul 2023 15:16:58 +0800 Subject: [PATCH 07/19] feat: finish more complicated render watcher --- packages/core/package.json | 11 +- packages/core/src/computed.ts | 79 +++++- packages/core/src/core/diff/index.js | 6 +- packages/core/src/core/util.ts | 30 +-- packages/core/src/index.ts | 381 ++++++++++++++++----------- 5 files changed, 297 insertions(+), 210 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 0b8fca4..aefc649 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -3,16 +3,7 @@ "version": "1.0.39", "description": "Web components quark-element", "type": "module", - "main": "./lib/index.umd.js", - "module": "./lib/index.js", - "types": "./lib/index.d.ts", - "exports": { - ".": { - "import": "./lib/index.js", - "require": "./lib/index.umd.js", - "types": "./lib/index.d.ts" - } - }, + "main": "./src/index.ts", "browserslist": "chrome >= 53, edge >= 79, firefox >= 63, opera >= 40, safari >= 10.1, ChromeAndroid >= 53, FirefoxAndroid >= 63, ios_saf >= 10.3, Samsung >= 6.0", "files": [ "lib/*", diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts index b05928d..741c8c6 100644 --- a/packages/core/src/computed.ts +++ b/packages/core/src/computed.ts @@ -1,4 +1,5 @@ import { QuarkElement } from "." +import { noop } from "./core/util" /** dependency universal id */ let uid = 0 @@ -24,6 +25,22 @@ const queueMicroTask = (callback: (...args: any[]) => any) => { } }; +const flushUpdatedQueue = (watchers: Watcher[]) => { + let i = watchers.length + + while (i--) { + const watcher = watchers[i] + const { + render, + inst, + } = watcher + + if (render && inst) { + inst.flushUpdatedQueue() + } + } +} + /** flush watcher queue */ const flushWatcherQueue = () => { for (let i = 0; i < watchers.length; i++) { @@ -32,6 +49,8 @@ const flushWatcherQueue = () => { watcher.run() } + flushUpdatedQueue(watchers) + // reset watchers.length = 0 watcherIds.clear() @@ -53,6 +72,25 @@ const queueWatcher = (watcher: Watcher) => { } } +interface SharedWatcherOptions { + /** watcher's callback */ + cb?: (newVal: any, oldVal: any) => void +} + +export interface UserWatcherOptions extends SharedWatcherOptions { + /** call immediately after first-time render */ + immediate?: boolean; +} + +interface InternalWatcherOptions extends SharedWatcherOptions { + /** is render watcher */ + render?: boolean; + /** is computed watcher */ + computed?: boolean; +} + +type WatcherOptions = UserWatcherOptions & InternalWatcherOptions + export class Watcher { /** watcher's id */ id: number @@ -75,18 +113,32 @@ export class Watcher { dirty = true /** is computed watcher */ computed: boolean - /** callback */ + /** watcher's callback */ cb: ((newVal: any, oldVal: any) => void) + /** is render watcher */ + render: boolean constructor( inst: QuarkElement, getterOrExpr: WatcherGetter | string, - computed: boolean = false, - cb: (newVal: any, oldVal: any) => void = () => {} + options: WatcherOptions, ) { this.id = ++uid this.inst = inst + const defaultOptions: Required = { + cb: noop, + render: false, + computed: false, + immediate: false, + } + const { + computed, + render, + cb, + immediate, + } = { ...defaultOptions, ...options } this.computed = computed + this.render = render if (typeof getterOrExpr === 'function') { this.getter = getterOrExpr @@ -100,8 +152,12 @@ export class Watcher { this.cb = cb - if (!this.computed) { - this.value = this.get() + if (!computed) { + if (!immediate) { + this.value = this.get() + } else { + this.run(); + } } } @@ -155,7 +211,7 @@ export class Watcher { } /** invoke callback after successfully updated */ - ensureUpdated(cb: (newValue: any, oldValue: any) => void) { + updateAndInvoke(cb: (newValue: any, oldValue: any) => void) { const value = this.compute() const oldValue = this.value @@ -177,7 +233,7 @@ export class Watcher { this.dirty = true } else { // * notify watchers of this watcher(for computed) - this.ensureUpdated(() => { + this.updateAndInvoke(() => { this.dep.notify() }) } @@ -188,7 +244,7 @@ export class Watcher { /** run callback of watcher */ run() { - this.ensureUpdated(this.cb) + this.updateAndInvoke(this.cb) } } @@ -208,17 +264,20 @@ export class Dep { this.watchers.add(watcher) } + /** stop watching this dependency */ unwatch(watcher: Watcher) { this.watchers.delete(watcher) } /** notify update to its watchers */ notify() { - this.watchers.forEach(watcher => watcher.update()) + this.watchers.forEach(watcher => { + watcher.update() + }) } /** - * mark itself as a dependency of current watcher. + * mark itself as a dependency of current watchexr. * in other words, current watcher depends on it. */ depend() { diff --git a/packages/core/src/core/diff/index.js b/packages/core/src/core/diff/index.js index fb467e9..8879a8e 100644 --- a/packages/core/src/core/diff/index.js +++ b/packages/core/src/core/diff/index.js @@ -3,7 +3,7 @@ import { Component, getDomSibling } from '../component'; import { Fragment } from '../create-element'; import { diffChildren } from './children'; import { diffProps, setProperty } from './props'; -import { removeNode, slice } from '../util'; +import { slice } from '../util'; import options from '../options'; /** @@ -262,7 +262,7 @@ function diffElementNodes( // Remove children that are not part of any vnode. if (excessDomChildren != null) { for (i = excessDomChildren.length; i--;) { - if (excessDomChildren[i] != null) removeNode(excessDomChildren[i]); + if (excessDomChildren[i] != null) excessDomChildren[i].remove(); } } } @@ -346,7 +346,7 @@ export function unmount(vnode, parentVNode, skipRemove) { } if (!skipRemove && vnode._dom != null) { - removeNode(vnode._dom); + vnode._dom.remove(); } // Must be set to `undefined` to properly clean up `_nextDom` diff --git a/packages/core/src/core/util.ts b/packages/core/src/core/util.ts index 21bb448..940d532 100644 --- a/packages/core/src/core/util.ts +++ b/packages/core/src/core/util.ts @@ -1,29 +1,3 @@ -import { EMPTY_ARR } from "./constants"; - -/** - * Assign properties from `props` to `obj` - * @template O, P The obj and props types - * @param obj The object to copy properties to - * @param props The object to copy properties from - * @returns - */ -export function assign(obj, props) { - // @ts-ignore We change the type of `obj` to be `O & P` - for (let i in props) obj[i] = props[i]; - return obj; -} - -/** - * Remove a child node from its parent if attached. This is a workaround for - * IE11 which doesn't support `Element.prototype.remove()`. Using this function - * is smaller than including a dedicated polyfill. - * @param node The node to remove - */ -export function removeNode(node: Node) { - let parentNode = node.parentNode; - if (parentNode) parentNode.removeChild(node); -} - /** * Checks if `value` is a `function`. * @param value The value to check @@ -33,4 +7,6 @@ export function isFunction(value: any): value is (...args: any[]) => any { return typeof value === "function"; } -export const slice = EMPTY_ARR.slice; +export const slice = Array.prototype.slice; + +export const noop = () => {}; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 5b1175f..b2bf025 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -5,7 +5,7 @@ import { PropertyDeclaration, converterFunction } from "./models" import DblKeyMap from "./dblKeyMap" import { EventController, EventHandler } from "./eventController" import {version} from '../package.json' -import { Dep, Watcher } from './computed'; +import { Dep, UserWatcherOptions, Watcher } from './computed'; export interface Ref { current: T; @@ -66,36 +66,54 @@ export const computed = () => { }; }; -export const watch = (path: string) => { +export const watch = (path: string, options?: Omit) => { return (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => { return (target as { constructor: typeof QuarkElement }).constructor.watch( propertyKey, descriptor, path, + options, ); }; } -const ElementProperties: DblKeyMap< +type PropertyDescriptorCreator = (defaultValue?: any) => PropertyDescriptor + +const StateDescriptors: DblKeyMap< typeof QuarkElement, string, - PropertyDeclaration + PropertyDescriptorCreator > = new DblKeyMap(); -const PropertyDepMap: DblKeyMap< +/** convert attribute value to prop value */ +type Attr2PropConverter = (value: string | null) => any + +/** all declared props' definitions */ +const PropDefs: DblKeyMap< typeof QuarkElement, string, - Dep + { + /** prop decorator options passed */ + options: PropertyDeclaration; + /** created dependency for the prop, it's initialization will be delayed until Object.defineProperty */ + propName: string; + } > = new DblKeyMap(); -type PropertyDescriptorCreator = (defaultValue?: any) => PropertyDescriptor - -const Descriptors: DblKeyMap< - typeof QuarkElement, +/** quark element instance's props' map */ +const Props: DblKeyMap< + QuarkElement, string, - PropertyDescriptorCreator + { + /** created dependency for the prop */ + dep: Dep; + converter: Attr2PropConverter; + } > = new DblKeyMap(); +/** quark element instance's prop values stored */ + + const ComputedDescriptors: DblKeyMap< typeof QuarkElement, string, @@ -107,8 +125,7 @@ const UserWatchers: DblKeyMap< string, { path: string; - cb: (newVal: any, oldVal: any) => void - } + } & UserWatcherOptions > = new DblKeyMap(); export function customElement( @@ -119,35 +136,28 @@ export function customElement( return (target: typeof QuarkElement) => { class NewQuarkElement extends target { - static get observedAttributes() { - const attributes: string[] = []; - const targetProperties = ElementProperties.get(target); - if (targetProperties) { - targetProperties.forEach((elOption, elName) => { - if (elOption.observed) { - attributes.push(elName); - } - }); + static get observedProps() { + const defs = PropDefs.get(target); + + if (!defs) { + return [] } - return attributes; + + return [...defs.entries()].filter(([_, { options }]) => !!options.observed); } - static isBooleanProperty(propKey: string) { - let isBoolean = false; - const targetProperties = ElementProperties.get(target); - if (targetProperties) { - targetProperties.forEach((elOption, elName) => { - if ( - elOption.type === Boolean && - propKey === elName - ) { - isBoolean = true; - return isBoolean; - } - }); + static get observedAttributes() { + return this.observedProps.map(([attrName]) => attrName); + } + + static isBooleanProperty(attrName: string) { + const def = PropDefs.get(target)?.get(attrName); + + if (!def) { + return false; } - - return isBoolean; + + return def.options.type === Boolean; } constructor() { @@ -171,19 +181,93 @@ export function customElement( } const comp = Object.getPrototypeOf(this.constructor); + const stateDescriptors = StateDescriptors.get(comp); + + if (stateDescriptors?.size) { + stateDescriptors.forEach((descriptorCreator, propName) => { + Object.defineProperty( + this, + propName, + descriptorCreator(this[propName]) + ); + }); + } /** * 重写类的属性描述符,并重写属性初始值。 * 注:由于子类的属性初始化晚于当前基类的构造函数,同名属性会导致属性描述符被覆盖,所以必须放在基类构造函数之后执行 */ - const descriptors = Descriptors.get(comp); + const propDefs = PropDefs.get(comp); - if (descriptors?.size) { - descriptors.forEach((descriptorCreator, propKey) => { + if (propDefs?.size) { + propDefs.forEach((def, attrName) => { + const { + options: { + type, + converter, + }, + propName, + } = def; + const defaultValue = this[propName]; + const convertAttrValue = (value: string | null) => { + // 判断val是否为空值 + // const isEmpty = () => !(val || val === false || val === 0) + // 当类型为非Boolean时,通过isEmpty方法判断val是否为空值 + // 当类型为Boolean时,在isEmpty判断之外,额外认定空字符串不为空值 + // + // 条件表达式推导过程 + // 由:(options.type !== Boolean && isEmpty(val)) || (options.type === Boolean && isEmpty(val) && val !== '') + // 变形为:isEmpty(val) && (options.type !== Boolean || (options.type === Boolean && val !== '')) + // 其中options.type === Boolean显然恒等于true:isEmpty(val) && (options.type !== Boolean || (true && val !== '')) + // 得出:isEmpty(val) && (options.type !== Boolean || val !== '') + if ( + isEmpty(value) + && (type !== Boolean || value !== '') + && !isEmpty(defaultValue) + ) { + return defaultValue; + } + + if (isFunction(converter)) { + return converter(value, type) as string; + } + + return value; + }; + const dep = new Dep(); + Props.set(this, attrName, { + dep, + converter: convertAttrValue, + }); + // make attribute reactive Object.defineProperty( this, - propKey, - descriptorCreator(this[propKey]) + propName, + { + get(this: QuarkElement): any { + dep.depend() + return convertAttrValue(this.getAttribute(attrName)); + }, + set(this: QuarkElement, newValue: string | boolean | null) { + let val = newValue; + + if (isFunction(converter)) { + val = converter(newValue, type); + } + + if (val) { + if (typeof val === "boolean") { + this.setAttribute(attrName, ""); + } else { + this.setAttribute(attrName, val); + } + } else { + this.removeAttribute(attrName); + } + }, + configurable: true, + enumerable: true, + } ); }); } @@ -205,9 +289,9 @@ export function customElement( if (watchers?.size) { watchers.forEach(({ path, - cb, + ...options }) => { - new Watcher(this, path, false, cb); + new Watcher(this, path, options); }); } } @@ -222,60 +306,16 @@ export function customElement( export class QuarkElement extends HTMLElement { static h = h; static Fragment = Fragment; + + private _updatedQueue: (() => void)[] = []; - // 外部属性装饰器,抹平不同框架使用差异 - protected static getPropertyDescriptor( - name: string, - options: PropertyDeclaration, - dep: Dep, - ): (defaultValue?: any) => PropertyDescriptor { - return (defaultValue?: any) => { - return { - get(this: QuarkElement): any { - dep.depend() - let val = this.getAttribute(name); - - if (!isEmpty(defaultValue)) { - // 判断val是否为空值 - // const isEmpty = () => !(val || val === false || val === 0) - // 当类型为非Boolean时,通过isEmpty方法判断val是否为空值 - // 当类型为Boolean时,在isEmpty判断之外,额外认定空字符串不为空值 - // - // 条件表达式推导过程 - // 由:(options.type !== Boolean && isEmpty(val)) || (options.type === Boolean && isEmpty(val) && val !== '') - // 变形为:isEmpty(val) && (options.type !== Boolean || (options.type === Boolean && val !== '')) - // 其中options.type === Boolean显然恒等于true:isEmpty(val) && (options.type !== Boolean || (true && val !== '')) - // 得出:isEmpty(val) && (options.type !== Boolean || val !== '') - if (isEmpty(val) && (options.type !== Boolean || val !== "")) { - return defaultValue; - } - } - if (isFunction(options.converter)) { - val = options.converter(val, options.type) as string; - } - return val; - }, - set(this: QuarkElement, newValue: string | boolean | null) { - let val = newValue; - - if (isFunction(options.converter)) { - val = options.converter(newValue, options.type); - } + private queueUpdated(cb: () => void) { + this._updatedQueue.push(cb) + } - if (val) { - if (typeof val === "boolean") { - this.setAttribute(name, ""); - } else { - this.setAttribute(name, val); - } - } else { - this.removeAttribute(name); - } - }, - configurable: true, - enumerable: true, - }; - }; + public flushUpdatedQueue() { + this._updatedQueue.forEach(cb => cb()) + this._updatedQueue = [] } // 内部属性装饰器 @@ -290,18 +330,19 @@ export class QuarkElement extends HTMLElement { return value; }, set(this: QuarkElement, newValue: string | boolean | null) { - const oldValue = value; + const resolvedOldVal = value; - if (Object.is(oldValue, newValue)) { + if (Object.is(resolvedOldVal, newValue)) { return; } value = newValue; getDep().notify(); - this._render(); if (isFunction(this.componentDidUpdate)) { - this.componentDidUpdate(name, oldValue, newValue); + this.queueUpdated(() => { + this.componentDidUpdate(name, resolvedOldVal, newValue); + }); } }, configurable: true, @@ -310,17 +351,20 @@ export class QuarkElement extends HTMLElement { }; } - static createProperty(name: string, options: PropertyDeclaration) { - const newOpt = Object.assign({}, defaultPropertyDeclaration, options); - const attributeName = options.attribute || name; - ElementProperties.set(this, attributeName, newOpt); - const dep = new Dep(); - PropertyDepMap.set(this, attributeName, dep); - Descriptors.set(this, name, this.getPropertyDescriptor(attributeName, newOpt, dep)); + static createProperty(propName: string, options: PropertyDeclaration) { + const attrName = options.attribute || propName; + + PropDefs.set(this, attrName, { + options: { + ...defaultPropertyDeclaration, + ...options, + }, + propName, + }); } static createState(name: string) { - Descriptors.set(this, name, this.getStateDescriptor(name)); + StateDescriptors.set(this, name, this.getStateDescriptor(name)); } static computed(propertyKey: string, descriptor: PropertyDescriptor) { @@ -332,7 +376,7 @@ export class QuarkElement extends HTMLElement { enumerable: true, get(this: QuarkElement) { if (!watcher) { - watcher = new Watcher(this, descriptor.get!, true); + watcher = new Watcher(this, descriptor.get!, { computed: true }); } watcher.dep.depend(); @@ -343,11 +387,17 @@ export class QuarkElement extends HTMLElement { } } - static watch(propertyKey: string, descriptor: PropertyDescriptor, path: string) { + static watch( + propertyKey: string, + descriptor: PropertyDescriptor, + path: string, + options?: UserWatcherOptions, + ) { const { value } = descriptor; if (typeof value === 'function') { UserWatchers.set(this, propertyKey, { + ...options, path, cb: value, }); @@ -371,24 +421,14 @@ export class QuarkElement extends HTMLElement { } /** 对传入的值根据类型进行转换处理 */ - private _updateProperty() { - (this.constructor as any).observedAttributes.forEach( - (propKey: string) => { - this[propKey] = this[propKey]; + private _updateProps() { + (this.constructor as any).observedProps.forEach( + ([attrName, { propName }]) => { + this[propName] = this.getAttribute(attrName); } ); } - private _updateBooleanProperty(propKey: string) { - // 判断是否是 boolean - if ((this.constructor as any).isBooleanProperty(propKey)) { - // 针对 false 场景走一次 set, true 不需要重新走 set - if (!(this as any)[propKey]) { - (this as any)[propKey] = (this as any)[propKey]; - } - } - } - $on = (eventName: string, eventHandler: EventHandler, el?: Element) => { return this.eventController.bindListener( el || this, @@ -417,17 +457,20 @@ export class QuarkElement extends HTMLElement { componentWillUnmount() {} /** + * @deprecated since we have embraced more precisely controlled render scheduler mechanism, + * there's no need to use shouldComponentUpdate any more. + * * 控制当前属性变化是否导致组件渲染 * @param propName 属性名 - * @param oldValue 属性旧值 + * @param resolvedOldVal 属性旧值 * @param newValue 属性新值 * @returns boolean */ - shouldComponentUpdate(propName: string, oldValue: string, newValue: string) { - return oldValue !== newValue; + shouldComponentUpdate(propName: string, resolvedOldVal: any, newValue: any) { + return resolvedOldVal !== newValue; } - componentDidUpdate(propName: string, oldValue: any, newValue: any) {} + componentDidUpdate(propName: string, resolvedOldVal: any, newValue: any) {} /** * 组件的 render 方法, @@ -438,49 +481,68 @@ export class QuarkElement extends HTMLElement { return "" as any; } - private _initialRender = true - connectedCallback() { - this._updateProperty(); - - /** - * 初始值重写后首次渲染 - */ - this._render(); - this._initialRender = false; + this._updateProps(); + new Watcher( + this, + () => { this._render() }, + { render: true }, + ); + this.flushUpdatedQueue(); if (isFunction(this.componentDidMount)) { this.componentDidMount(); } } - attributeChangedCallback(name: string, oldValue: string, value: string) { - if (this._initialRender) { - return; - } - - const newValue = this[name] || value; - PropertyDepMap - .get(Object.getPrototypeOf(this.constructor)) - ?.get(name) - ?.notify(); - - if (isFunction(this.shouldComponentUpdate)) { - if (!this.shouldComponentUpdate(name, oldValue, newValue)) { - return; + /** log old 'false' attribute value before resetting and removing it */ + private _oldVals: Map = new Map() + + attributeChangedCallback(name: string, oldVal: string, newVal: string) { + // react specific patch, for more detailed explanation: https://github.com/facebook/react/issues/9230 + // 对于自定义元素,React会直接将布尔值属性传递下去 + // 这时候这里的value会是字符串'true'或'false',对于'false'我们需要手动将该属性从自定义元素上移除 + // 以避免CSS选择器将[attr="false"]视为等同于[attr] + if (newVal !== oldVal) { + if ((this.constructor as any).isBooleanProperty(name)) { + if (newVal === 'false') { + if (isFunction(this.componentDidUpdate)) { + this._oldVals.set(name, oldVal) + } + + this[name] = newVal; + return; + } } } + + const prop = Props.get(this)?.get(name); - this._render(); + if (!prop) { + return; + } + // notify changes to this prop's watchers + prop.dep.notify() + if (isFunction(this.componentDidUpdate)) { - this.componentDidUpdate(name, oldValue, newValue); - } + const newValue = this[name]; + let resolvedOldVal = oldVal + let oldValReset = this._oldVals.get(name) - // 因为 React的属性变更并不会触发set,此时如果boolean值变更,这里的value会是字符串,组件内部通过get操作可以正常判断类型,但css里面有根据boolean属性设置样式的将会出现问题 - if (value !== oldValue) { - // boolean 重走set - this._updateBooleanProperty(name); + if (oldValReset) { + this._oldVals.delete(name) + resolvedOldVal = oldValReset + } + + resolvedOldVal = prop.converter(resolvedOldVal); + this.queueUpdated(() => { + this.componentDidUpdate( + name, + resolvedOldVal, + newValue, + ); + }); } } @@ -491,6 +553,5 @@ export class QuarkElement extends HTMLElement { this.eventController.removeAllListener(); this.rootPatch(null); - this._initialRender = true; } } From 38f135cae234e7a75a07a97c54b808f205294372 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Tue, 25 Jul 2023 15:20:28 +0800 Subject: [PATCH 08/19] fix: revert package.json --- packages/core/package.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index aefc649..0b8fca4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -3,7 +3,16 @@ "version": "1.0.39", "description": "Web components quark-element", "type": "module", - "main": "./src/index.ts", + "main": "./lib/index.umd.js", + "module": "./lib/index.js", + "types": "./lib/index.d.ts", + "exports": { + ".": { + "import": "./lib/index.js", + "require": "./lib/index.umd.js", + "types": "./lib/index.d.ts" + } + }, "browserslist": "chrome >= 53, edge >= 79, firefox >= 63, opera >= 40, safari >= 10.1, ChromeAndroid >= 53, FirefoxAndroid >= 63, ios_saf >= 10.3, Samsung >= 6.0", "files": [ "lib/*", From 6b7ab68942588e10b41e7a480cc6dabe0adc32e6 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Tue, 25 Jul 2023 15:44:06 +0800 Subject: [PATCH 09/19] fix: attrName to propName mapping --- packages/core/src/computed.ts | 2 +- packages/core/src/index.ts | 69 ++++++++++++++++++----------------- 2 files changed, 37 insertions(+), 34 deletions(-) diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts index 741c8c6..7dd9c08 100644 --- a/packages/core/src/computed.ts +++ b/packages/core/src/computed.ts @@ -277,7 +277,7 @@ export class Dep { } /** - * mark itself as a dependency of current watchexr. + * mark itself as a dependency of current watcher. * in other words, current watcher depends on it. */ depend() { diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index b2bf025..0e24103 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -43,33 +43,33 @@ const defaultPropertyDeclaration: PropertyDeclaration = { }; export const property = (options: PropertyDeclaration = {}) => { - return (target: unknown, name: string) => { + return (target: unknown, propName: string) => { return (target as { constructor: typeof QuarkElement }).constructor.createProperty( - name, + propName, options ); }; }; export const state = () => { - return (target: unknown, name: string) => { - return (target as { constructor: typeof QuarkElement }).constructor.createState(name); + return (target: unknown, propName: string) => { + return (target as { constructor: typeof QuarkElement }).constructor.createState(propName); }; }; export const computed = () => { - return (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => { + return (target: unknown, propName: string, descriptor: PropertyDescriptor) => { return (target as { constructor: typeof QuarkElement }).constructor.computed( - propertyKey, + propName, descriptor, ); }; }; export const watch = (path: string, options?: Omit) => { - return (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => { + return (target: unknown, propName: string, descriptor: PropertyDescriptor) => { return (target as { constructor: typeof QuarkElement }).constructor.watch( - propertyKey, + propName, descriptor, path, options, @@ -88,7 +88,7 @@ const StateDescriptors: DblKeyMap< /** convert attribute value to prop value */ type Attr2PropConverter = (value: string | null) => any -/** all declared props' definitions */ +/** all declared props' definitions, with attribute name as sub key */ const PropDefs: DblKeyMap< typeof QuarkElement, string, @@ -100,7 +100,7 @@ const PropDefs: DblKeyMap< } > = new DblKeyMap(); -/** quark element instance's props' map */ +/** quark element instance's props' map, with attribute name as sub key */ const Props: DblKeyMap< QuarkElement, string, @@ -108,6 +108,7 @@ const Props: DblKeyMap< /** created dependency for the prop */ dep: Dep; converter: Attr2PropConverter; + propName: string; } > = new DblKeyMap(); @@ -236,6 +237,7 @@ export function customElement( }; const dep = new Dep(); Props.set(this, attrName, { + propName, dep, converter: convertAttrValue, }); @@ -319,7 +321,7 @@ export class QuarkElement extends HTMLElement { } // 内部属性装饰器 - protected static getStateDescriptor(name: string): () => PropertyDescriptor { + protected static getStateDescriptor(propName: string): () => PropertyDescriptor { return (defaultValue?: any) => { let value = defaultValue; let dep: Dep | undefined; @@ -341,7 +343,7 @@ export class QuarkElement extends HTMLElement { if (isFunction(this.componentDidUpdate)) { this.queueUpdated(() => { - this.componentDidUpdate(name, resolvedOldVal, newValue); + this.componentDidUpdate(propName, resolvedOldVal, newValue); }); } }, @@ -353,7 +355,6 @@ export class QuarkElement extends HTMLElement { static createProperty(propName: string, options: PropertyDeclaration) { const attrName = options.attribute || propName; - PropDefs.set(this, attrName, { options: { ...defaultPropertyDeclaration, @@ -363,13 +364,13 @@ export class QuarkElement extends HTMLElement { }); } - static createState(name: string) { - StateDescriptors.set(this, name, this.getStateDescriptor(name)); + static createState(propName: string) { + StateDescriptors.set(this, propName, this.getStateDescriptor(propName)); } - static computed(propertyKey: string, descriptor: PropertyDescriptor) { + static computed(propName: string, descriptor: PropertyDescriptor) { if (descriptor.get) { - ComputedDescriptors.set(this, propertyKey, () => { + ComputedDescriptors.set(this, propName, () => { let watcher: Watcher; return { configurable: true, @@ -388,7 +389,7 @@ export class QuarkElement extends HTMLElement { } static watch( - propertyKey: string, + propName: string, descriptor: PropertyDescriptor, path: string, options?: UserWatcherOptions, @@ -396,7 +397,7 @@ export class QuarkElement extends HTMLElement { const { value } = descriptor; if (typeof value === 'function') { - UserWatchers.set(this, propertyKey, { + UserWatchers.set(this, propName, { ...options, path, cb: value, @@ -498,47 +499,49 @@ export class QuarkElement extends HTMLElement { /** log old 'false' attribute value before resetting and removing it */ private _oldVals: Map = new Map() - attributeChangedCallback(name: string, oldVal: string, newVal: string) { + attributeChangedCallback(attrName: string, oldVal: string, newVal: string) { + const prop = Props.get(this)?.get(attrName); + + if (!prop) { + return; + } + + const { propName } = prop; + // react specific patch, for more detailed explanation: https://github.com/facebook/react/issues/9230 // 对于自定义元素,React会直接将布尔值属性传递下去 // 这时候这里的value会是字符串'true'或'false',对于'false'我们需要手动将该属性从自定义元素上移除 // 以避免CSS选择器将[attr="false"]视为等同于[attr] if (newVal !== oldVal) { - if ((this.constructor as any).isBooleanProperty(name)) { + if ((this.constructor as any).isBooleanProperty(attrName)) { if (newVal === 'false') { if (isFunction(this.componentDidUpdate)) { - this._oldVals.set(name, oldVal) + this._oldVals.set(propName, oldVal) } - this[name] = newVal; + this[propName] = newVal; return; } } } - - const prop = Props.get(this)?.get(name); - - if (!prop) { - return; - } // notify changes to this prop's watchers prop.dep.notify() if (isFunction(this.componentDidUpdate)) { - const newValue = this[name]; + const newValue = this[propName]; let resolvedOldVal = oldVal - let oldValReset = this._oldVals.get(name) + let oldValReset = this._oldVals.get(propName) if (oldValReset) { - this._oldVals.delete(name) + this._oldVals.delete(propName) resolvedOldVal = oldValReset } resolvedOldVal = prop.converter(resolvedOldVal); this.queueUpdated(() => { this.componentDidUpdate( - name, + propName, resolvedOldVal, newValue, ); From 8bce893f170b0b01ad7bd88cf67f7ec2299fd960 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Fri, 29 Mar 2024 12:53:52 +0800 Subject: [PATCH 10/19] feat: stash --- demo/src/index.tsx | 2 +- demo/src/pages/child-second.tsx | 1 + demo/src/pages/child.tsx | 1 + demo/src/pages/home.tsx | 2 +- demo/src/pages/sub.tsx | 2 +- demo4gluang/src/gluang.ts | 2 + packages/core/src/index.ts | 54 ++- packages/router/package.json | 2 +- pnpm-lock.yaml | 753 +++++++++++++++++++++++++++++++- 9 files changed, 786 insertions(+), 33 deletions(-) diff --git a/demo/src/index.tsx b/demo/src/index.tsx index eb1b02f..b6743b8 100644 --- a/demo/src/index.tsx +++ b/demo/src/index.tsx @@ -35,7 +35,7 @@ class MyComponent extends QuarkElement { }; componentDidMount() { - console.log("dom loaded!") + console.log("dom loaded!", 'parent') // ... } diff --git a/demo/src/pages/child-second.tsx b/demo/src/pages/child-second.tsx index 0cef4c1..363bcc0 100644 --- a/demo/src/pages/child-second.tsx +++ b/demo/src/pages/child-second.tsx @@ -16,6 +16,7 @@ class Child2 extends QuarkElement { ]) componentDidMount() { + console.log('dom loaded!', 'child-second') } render() { diff --git a/demo/src/pages/child.tsx b/demo/src/pages/child.tsx index ac0a53b..05b7a7b 100644 --- a/demo/src/pages/child.tsx +++ b/demo/src/pages/child.tsx @@ -17,6 +17,7 @@ class Child1 extends QuarkElement { componentDidMount() { + console.log('dom loaded!', 'child') } goToLink() { diff --git a/demo/src/pages/home.tsx b/demo/src/pages/home.tsx index b1fb8e8..2c5e5ab 100644 --- a/demo/src/pages/home.tsx +++ b/demo/src/pages/home.tsx @@ -14,7 +14,7 @@ class MyComponent extends QuarkElement { componentDidMount() { - console.log("dom loaded!") + console.log("dom loaded!", 'home') // ... } diff --git a/demo/src/pages/sub.tsx b/demo/src/pages/sub.tsx index ab28a27..f157c89 100644 --- a/demo/src/pages/sub.tsx +++ b/demo/src/pages/sub.tsx @@ -14,7 +14,7 @@ class MyComponent extends QuarkElement { componentDidMount() { - console.log("dom loaded!") + console.log("dom loaded!", 'sub') // ... } diff --git a/demo4gluang/src/gluang.ts b/demo4gluang/src/gluang.ts index 012d203..22f52a6 100644 --- a/demo4gluang/src/gluang.ts +++ b/demo4gluang/src/gluang.ts @@ -18,12 +18,14 @@ export const connectStore = superclass => { // 区分 lit(lit 中存在 performUpdate) if(!this.performUpdate) { + console.log('before update') this.update(); // quarkc 中先去执行 } } // Your framework need this function to init observe state update() { + console.log('gluang update') stateRecorder.start(); super.update(); this._initStateObservers(); diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index e3cb867..49b0910 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -468,15 +468,15 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost // Reserve, may expand in the future requestUpdate() { - // this._render(); - // this._controllers?.forEach((c) => c.hostUpdated?.()); - this._renderWatcher?.update(); + console.log('requestUpdate') + this.getOrInitRenderWatcher().update(); } // Reserve, may expand in the future update() { + console.log('update') // this._render() - this._renderWatcher?.update(); + this.getOrInitRenderWatcher().update() } $on = (eventName: string, eventHandler: EventHandler, el?: Element) => { @@ -531,25 +531,39 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost return "" as any; } + private getOrInitRenderWatcher() { + if (!this._renderWatcher) { + console.error('getOrInitRenderWatcher if', this); + let initRender = true; + this._renderWatcher = new Watcher( + this, + () => { + console.error('render watcher callback') + this._render(); + const renderCbType = !initRender ? 'hostUpdated' : 'hostMounted'; + this._controllers?.forEach((c) => c[renderCbType]?.()); + + if (initRender) { + initRender = false; + + if (isFunction(this.componentDidMount)) { + this.componentDidMount(); + } + } else { + this.flushUpdatedQueue(); + } + }, + { render: true }, + ); + } + + return this._renderWatcher + } + connectedCallback() { this._updateProps(); this._controllers?.forEach((c) => c.hostConnected?.()); - let initRender = true; - this._renderWatcher = new Watcher( - this, - () => { - this._render(); - const renderCbType = !initRender ? 'hostUpdated' : 'hostMounted'; - this._controllers?.forEach((c) => c[renderCbType]?.()); - initRender = false; - }, - { render: true }, - ); - this.flushUpdatedQueue(); - - if (isFunction(this.componentDidMount)) { - this.componentDidMount(); - } + this.getOrInitRenderWatcher(); } /** log old 'false' attribute value before resetting and removing it */ diff --git a/packages/router/package.json b/packages/router/package.json index d796c5d..2693ef5 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -41,7 +41,7 @@ "urlpattern-polyfill": "^9.0.0" }, "peerDependencies": { - "quarkc": "^1.0.41" + "quarkc": "^1.0.40" }, "devDependencies": { "@babel/core": "^7.22.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d12933a..6835764 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -86,7 +86,7 @@ importers: version: 0.4.3(rollup@2.77.0) '@rollup/plugin-typescript': specifier: ^8.5.0 - version: 8.5.0(rollup@2.77.0)(typescript@4.9.5) + version: 8.5.0(rollup@2.77.0)(tslib@2.6.2)(typescript@4.9.5) '@types/node': specifier: ^14.18.52 version: 14.18.52 @@ -132,9 +132,15 @@ importers: packages/router: dependencies: + '@babel/runtime': + specifier: ^7.23.8 + version: 7.23.8 quarkc: specifier: ^1.0.40 version: link:../core + tslib: + specifier: ^2.6.2 + version: 2.6.2 urlpattern-polyfill: specifier: ^9.0.0 version: 9.0.0 @@ -165,7 +171,7 @@ importers: version: 0.4.3(rollup@2.77.0) '@rollup/plugin-typescript': specifier: ^8.5.0 - version: 8.5.0(rollup@2.77.0)(typescript@4.9.5) + version: 8.5.0(rollup@2.77.0)(tslib@2.6.2)(typescript@4.9.5) '@types/node': specifier: ^14.18.52 version: 14.18.52 @@ -181,6 +187,9 @@ importers: rollup-plugin-filesize: specifier: ^10.0.0 version: 10.0.0 + rollup-plugin-postcss: + specifier: ^4.0.2 + version: 4.0.2(postcss@8.4.24)(ts-node@10.9.1) typescript: specifier: ^4.9.5 version: 4.9.5 @@ -1413,6 +1422,20 @@ packages: dependencies: regenerator-runtime: 0.13.11 + /@babel/runtime@7.23.8: + resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@babel/runtime@7.24.1: + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: true + /@babel/standalone@7.22.8: resolution: {integrity: sha512-Bm9Sn+FfDqcvxYo/lz5BFo/PWBcjhxD6rtifkchFes/rU8/u4FacCFY/WdqwPtycH54THlXqMYMjaWigQaMpYA==} engines: {node: '>=6.9.0'} @@ -2174,7 +2197,7 @@ packages: terser: 5.17.7 dev: true - /@rollup/plugin-typescript@8.5.0(rollup@2.77.0)(typescript@4.9.5): + /@rollup/plugin-typescript@8.5.0(rollup@2.77.0)(tslib@2.6.2)(typescript@4.9.5): resolution: {integrity: sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ==} engines: {node: '>=8.0.0'} peerDependencies: @@ -2188,6 +2211,7 @@ packages: '@rollup/pluginutils': 3.1.0(rollup@2.77.0) resolve: 1.22.2 rollup: 2.77.0 + tslib: 2.6.2 typescript: 4.9.5 dev: true @@ -2254,6 +2278,11 @@ packages: engines: {node: '>= 10'} dev: true + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} dev: true @@ -2697,6 +2726,10 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + /boxen@5.1.2: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} engines: {node: '>=10'} @@ -2806,6 +2839,15 @@ packages: engines: {node: '>=10'} dev: true + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + dependencies: + browserslist: 4.21.7 + caniuse-lite: 1.0.30001502 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + dev: true + /caniuse-lite@1.0.30001502: resolution: {integrity: sha512-AZ+9tFXw1sS0o0jcpJQIXvFTOB/xGiQ4OQ2t98QX3NDn2EZTSRBC801gxrsGgViuq2ak/NLkNgSNEPtCr5lfKg==} dev: true @@ -2905,6 +2947,10 @@ packages: hasBin: true dev: true + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true @@ -2923,6 +2969,11 @@ packages: engines: {node: '>= 6'} dev: true + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true @@ -2938,6 +2989,12 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true + /concat-with-sourcemaps@1.1.0: + resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} + dependencies: + source-map: 0.6.1 + dev: true + /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -3171,6 +3228,110 @@ packages: which: 2.0.2 dev: true + /css-declaration-sorter@6.4.1(postcss@8.4.24): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.24 + dev: true + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /cssnano-preset-default@5.2.14(postcss@8.4.24): + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.4.24) + cssnano-utils: 3.1.0(postcss@8.4.24) + postcss: 8.4.24 + postcss-calc: 8.2.4(postcss@8.4.24) + postcss-colormin: 5.3.1(postcss@8.4.24) + postcss-convert-values: 5.1.3(postcss@8.4.24) + postcss-discard-comments: 5.1.2(postcss@8.4.24) + postcss-discard-duplicates: 5.1.0(postcss@8.4.24) + postcss-discard-empty: 5.1.1(postcss@8.4.24) + postcss-discard-overridden: 5.1.0(postcss@8.4.24) + postcss-merge-longhand: 5.1.7(postcss@8.4.24) + postcss-merge-rules: 5.1.4(postcss@8.4.24) + postcss-minify-font-values: 5.1.0(postcss@8.4.24) + postcss-minify-gradients: 5.1.1(postcss@8.4.24) + postcss-minify-params: 5.1.4(postcss@8.4.24) + postcss-minify-selectors: 5.2.1(postcss@8.4.24) + postcss-normalize-charset: 5.1.0(postcss@8.4.24) + postcss-normalize-display-values: 5.1.0(postcss@8.4.24) + postcss-normalize-positions: 5.1.1(postcss@8.4.24) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.24) + postcss-normalize-string: 5.1.0(postcss@8.4.24) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.24) + postcss-normalize-unicode: 5.1.1(postcss@8.4.24) + postcss-normalize-url: 5.1.0(postcss@8.4.24) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.24) + postcss-ordered-values: 5.1.3(postcss@8.4.24) + postcss-reduce-initial: 5.1.2(postcss@8.4.24) + postcss-reduce-transforms: 5.1.0(postcss@8.4.24) + postcss-svgo: 5.1.0(postcss@8.4.24) + postcss-unique-selectors: 5.1.1(postcss@8.4.24) + dev: true + + /cssnano-utils@3.1.0(postcss@8.4.24): + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: true + + /cssnano@5.1.15(postcss@8.4.24): + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 5.2.14(postcss@8.4.24) + lilconfig: 2.1.0 + postcss: 8.4.24 + yaml: 1.10.2 + dev: true + + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + /dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} @@ -3263,6 +3424,33 @@ packages: esutils: 2.0.3 dev: true + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -3315,6 +3503,10 @@ packages: ansi-colors: 4.1.3 dev: true + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -3507,6 +3699,10 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-walker@0.6.1: + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} + dev: true + /estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} dev: true @@ -3520,6 +3716,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + /execa@4.1.0: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} @@ -3713,6 +3913,12 @@ packages: wide-align: 1.1.5 dev: true + /generic-names@4.0.0: + resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} + dependencies: + loader-utils: 3.2.1 + dev: true + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -4004,6 +4210,19 @@ packages: dev: true optional: true + /icss-replace-symbols@1.1.0: + resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} + dev: true + + /icss-utils@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.24 + dev: true + /ignore-walk@6.0.3: resolution: {integrity: sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4029,6 +4248,13 @@ packages: dev: true optional: true + /import-cwd@3.0.0: + resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} + engines: {node: '>=8'} + dependencies: + import-from: 3.0.0 + dev: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -4037,6 +4263,13 @@ packages: resolve-from: 4.0.0 dev: true + /import-from@3.0.0: + resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -4290,7 +4523,7 @@ packages: dependencies: copy-anything: 2.0.6 parse-node-version: 1.0.1 - tslib: 2.5.3 + tslib: 2.6.2 optionalDependencies: errno: 0.1.8 graceful-fs: 4.2.11 @@ -4311,6 +4544,11 @@ packages: type-check: 0.4.0 dev: true + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true @@ -4368,6 +4606,11 @@ packages: strip-bom: 3.0.0 dev: true + /loader-utils@3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} + dev: true + /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -4414,6 +4657,10 @@ packages: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} dev: true + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true @@ -4554,6 +4801,10 @@ packages: engines: {node: '>=8'} dev: true + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + /meow@8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -4860,6 +5111,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true + /npm-bundled@3.0.0: resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4938,6 +5194,12 @@ packages: set-blocking: 2.0.0 dev: true + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -4963,6 +5225,11 @@ packages: word-wrap: 1.2.3 dev: true + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: true + /p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} engines: {node: '>=4'} @@ -5012,6 +5279,21 @@ packages: aggregate-error: 3.1.0 dev: true + /p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + dev: true + + /p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + dependencies: + p-finally: 1.0.0 + dev: true + /p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} @@ -5154,6 +5436,11 @@ packages: dev: true optional: true + /pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} + dev: true + /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: @@ -5168,6 +5455,375 @@ packages: semver-compare: 1.0.0 dev: true + /postcss-calc@8.2.4(postcss@8.4.24): + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.24 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin@5.3.1(postcss@8.4.24): + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.7 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-convert-values@5.1.3(postcss@8.4.24): + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.7 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-discard-comments@5.1.2(postcss@8.4.24): + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: true + + /postcss-discard-duplicates@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: true + + /postcss-discard-empty@5.1.1(postcss@8.4.24): + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: true + + /postcss-discard-overridden@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: true + + /postcss-load-config@3.1.4(postcss@8.4.24)(ts-node@10.9.1): + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.24 + ts-node: 10.9.1(@types/node@14.18.52)(typescript@5.1.3) + yaml: 1.10.2 + dev: true + + /postcss-merge-longhand@5.1.7(postcss@8.4.24): + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1(postcss@8.4.24) + dev: true + + /postcss-merge-rules@5.1.4(postcss@8.4.24): + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.7 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0(postcss@8.4.24) + postcss: 8.4.24 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-minify-font-values@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-gradients@5.1.1(postcss@8.4.24): + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + colord: 2.9.3 + cssnano-utils: 3.1.0(postcss@8.4.24) + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-params@5.1.4(postcss@8.4.24): + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.7 + cssnano-utils: 3.1.0(postcss@8.4.24) + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-selectors@5.2.1(postcss@8.4.24): + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-modules-extract-imports@3.0.0(postcss@8.4.24): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.24 + dev: true + + /postcss-modules-local-by-default@4.0.4(postcss@8.4.24): + resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.24) + postcss: 8.4.24 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope@3.1.1(postcss@8.4.24): + resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.24 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-modules-values@4.0.0(postcss@8.4.24): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.24) + postcss: 8.4.24 + dev: true + + /postcss-modules@4.3.1(postcss@8.4.24): + resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} + peerDependencies: + postcss: ^8.0.0 + dependencies: + generic-names: 4.0.0 + icss-replace-symbols: 1.1.0 + lodash.camelcase: 4.3.0 + postcss: 8.4.24 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.24) + postcss-modules-local-by-default: 4.0.4(postcss@8.4.24) + postcss-modules-scope: 3.1.1(postcss@8.4.24) + postcss-modules-values: 4.0.0(postcss@8.4.24) + string-hash: 1.1.3 + dev: true + + /postcss-normalize-charset@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: true + + /postcss-normalize-display-values@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-positions@5.1.1(postcss@8.4.24): + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.24): + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-string@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-unicode@5.1.1(postcss@8.4.24): + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.7 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-url@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + normalize-url: 6.1.0 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-whitespace@5.1.1(postcss@8.4.24): + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-ordered-values@5.1.3(postcss@8.4.24): + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-utils: 3.1.0(postcss@8.4.24) + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-reduce-initial@5.1.2(postcss@8.4.24): + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.7 + caniuse-api: 3.0.0 + postcss: 8.4.24 + dev: true + + /postcss-reduce-transforms@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-svgo@5.1.0(postcss@8.4.24): + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + svgo: 2.8.0 + dev: true + + /postcss-unique-selectors@5.1.1(postcss@8.4.24): + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + /postcss@8.4.24: resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} engines: {node: ^10 || ^12 || >=14} @@ -5224,6 +5880,11 @@ packages: retry: 0.12.0 dev: true + /promise.series@0.2.0: + resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} + engines: {node: '>=0.12'} + dev: true + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -5374,10 +6035,13 @@ packages: /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + /regenerator-transform@0.15.1: resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} dependencies: - '@babel/runtime': 7.22.5 + '@babel/runtime': 7.24.1 dev: true /regexpp@3.2.0: @@ -5500,6 +6164,36 @@ packages: - supports-color dev: true + /rollup-plugin-postcss@4.0.2(postcss@8.4.24)(ts-node@10.9.1): + resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} + engines: {node: '>=10'} + peerDependencies: + postcss: 8.x + dependencies: + chalk: 4.1.2 + concat-with-sourcemaps: 1.1.0 + cssnano: 5.1.15(postcss@8.4.24) + import-cwd: 3.0.0 + p-queue: 6.6.2 + pify: 5.0.0 + postcss: 8.4.24 + postcss-load-config: 3.1.4(postcss@8.4.24)(ts-node@10.9.1) + postcss-modules: 4.3.1(postcss@8.4.24) + promise.series: 0.2.0 + resolve: 1.22.2 + rollup-pluginutils: 2.8.2 + safe-identifier: 0.4.2 + style-inject: 0.3.0 + transitivePeerDependencies: + - ts-node + dev: true + + /rollup-pluginutils@2.8.2: + resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} + dependencies: + estree-walker: 0.6.1 + dev: true + /rollup@2.77.0: resolution: {integrity: sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==} engines: {node: '>=10.0.0'} @@ -5525,7 +6219,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.5.3 + tslib: 2.6.2 dev: true /safe-buffer@5.1.2: @@ -5536,6 +6230,10 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true + /safe-identifier@0.4.2: + resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} + dev: true + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} requiresBuild: true @@ -5763,11 +6461,20 @@ packages: minipass: 5.0.0 dev: true + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + /string-argv@0.3.1: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} engines: {node: '>=0.6.19'} dev: true + /string-hash@1.1.3: + resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} + dev: true + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -5843,6 +6550,21 @@ packages: engines: {node: '>=8'} dev: true + /style-inject@0.3.0: + resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} + dev: true + + /stylehacks@5.1.1(postcss@8.4.24): + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.7 + postcss: 8.4.24 + postcss-selector-parser: 6.0.16 + dev: true + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -5862,6 +6584,20 @@ packages: engines: {node: '>= 0.4'} dev: true + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 + dev: true + /table@6.8.1: resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} engines: {node: '>=10.0.0'} @@ -5987,9 +6723,8 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.5.3: - resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} - dev: true + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} /tsutils@3.21.0(typescript@5.1.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} From d7bf4897e85aed16002b21eeb2e01578a0c85df6 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Sat, 30 Mar 2024 15:33:02 +0800 Subject: [PATCH 11/19] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8DshouldComponent?= =?UTF-8?q?Update=E5=BC=95=E8=B5=B7=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo/src/index.tsx | 34 ++++-- demo/src/pages/home.tsx | 52 ++++++++- demo4gluang/src/app-header/index.tsx | 1 - demo4gluang/src/gluang.ts | 22 ++-- packages/core/src/computed.ts | 32 +++--- packages/core/src/index.ts | 159 ++++++++++++++++++--------- 6 files changed, 211 insertions(+), 89 deletions(-) diff --git a/demo/src/index.tsx b/demo/src/index.tsx index b6743b8..ea6247f 100644 --- a/demo/src/index.tsx +++ b/demo/src/index.tsx @@ -1,4 +1,4 @@ -import { QuarkElement, property, customElement } from "quarkc" +import { QuarkElement, property, customElement, state, computed } from "quarkc" import { Router } from "quark-router" import "./pages/home" import "./pages/sub" @@ -14,7 +14,7 @@ declare global { @customElement({ tag: "my-component", style }) class MyComponent extends QuarkElement { private _routes = new Router(this, [ - {path: '/', render: () => }, + {path: '/', render: () => }, {path: '/sub/:id', render: ({id}) => }, {path: '/child/*', render: () => }, {path: '/child', render: () => }, @@ -29,16 +29,36 @@ class MyComponent extends QuarkElement { @property({ type: String }) text + @state() + innerCount = 0; + + @computed() + get resolvedCount() { + return this.count + this.innerCount; + } + add = () => { // 内部事件 - this.count += 1 + this.innerCount += 1 }; - componentDidMount() { - console.log("dom loaded!", 'parent') - // ... + shouldComponentUpdate(propName, oldValue, newValue) { + if (propName === 'innerCount') { + console.log(propName, oldValue, newValue) + return newValue <= 10 || newValue >= 20; + } + + return true; } + componentDidUpdate() { + console.log("parent dom updated!") + } + + // componentDidMount() { + // console.log("parent dom loaded!") + // } + render() { return ( <> @@ -56,7 +76,7 @@ class MyComponent extends QuarkElement {

{this.text} Quarkc

- +
    diff --git a/demo/src/pages/home.tsx b/demo/src/pages/home.tsx index 2c5e5ab..775aba5 100644 --- a/demo/src/pages/home.tsx +++ b/demo/src/pages/home.tsx @@ -1,4 +1,4 @@ -import { QuarkElement, property, customElement } from "quarkc" +import { QuarkElement, property, customElement, watch, state, computed } from "quarkc" import style from "./style.less?inline" declare global { @@ -12,16 +12,60 @@ class MyComponent extends QuarkElement { @property({ type: String }) text = "hello world" + @property({ type: Number }) + count = 0 + + @state() + loggerRunCount = 0 + + @state() + counter = 0; + + private _counterTimer = 0; + + initCounter() { + const runCounter = () => { + this._counterTimer = window.setTimeout(() => { + this.counter++; + runCounter(); + }, 1000) + }; + runCounter(); + } componentDidMount() { - console.log("dom loaded!", 'home') - // ... + console.log("home dom loaded!") + this.initCounter(); + } + + componentWillUnmount() { + console.log('home dom will unmount'); + window.clearTimeout(this._counterTimer); + } + + @watch('count', { immediate: true }) + countLogger(newVal, oldVal) { + console.log('home countLogger', newVal, oldVal); + this.loggerRunCount++; + } + + @computed() + get counterGreet() { + console.log('home @computed counterGreet') + return `${this.text} ${this.counter} times`; + } + + componentDidUpdate(propName, oldVal, newVal) { + console.log("home dom updated!", propName, oldVal, newVal) } render() { return (
    - home {this.text} + home +
    passed down count: {this.count} +
    watcher run count: {this.loggerRunCount} +
    {this.counterGreet}
    ); } diff --git a/demo4gluang/src/app-header/index.tsx b/demo4gluang/src/app-header/index.tsx index 5a92089..08a07de 100644 --- a/demo4gluang/src/app-header/index.tsx +++ b/demo4gluang/src/app-header/index.tsx @@ -10,7 +10,6 @@ import { store } from '../store'; @customElement({ tag: "app-header", style }) class MyComponent extends connectStore(QuarkElement) { - handleSwitch = () => { store.author = store.author === 'Sun Tzu' ? 'Guess who?' : 'Sun Tzu'; } diff --git a/demo4gluang/src/gluang.ts b/demo4gluang/src/gluang.ts index 22f52a6..9ef6cd9 100644 --- a/demo4gluang/src/gluang.ts +++ b/demo4gluang/src/gluang.ts @@ -15,19 +15,25 @@ export const connectStore = superclass => { constructor() { super(); this._observers = []; + } - // 区分 lit(lit 中存在 performUpdate) - if(!this.performUpdate) { - console.log('before update') - this.update(); // quarkc 中先去执行 - } + connectedCallback() { + // 区分 lit(lit 中存在 performUpdate) + if(!this.performUpdate) { + this.update(true); // quarkc 中先去执行 + } } // Your framework need this function to init observe state - update() { - console.log('gluang update') + update(init = false) { stateRecorder.start(); - super.update(); + + if (!init) { + super.update(); + } else { + super.connectedCallback(); + } + this._initStateObservers(); } diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts index 7dd9c08..deda63d 100644 --- a/packages/core/src/computed.ts +++ b/packages/core/src/computed.ts @@ -25,21 +25,21 @@ const queueMicroTask = (callback: (...args: any[]) => any) => { } }; -const flushUpdatedQueue = (watchers: Watcher[]) => { - let i = watchers.length - - while (i--) { - const watcher = watchers[i] - const { - render, - inst, - } = watcher - - if (render && inst) { - inst.flushUpdatedQueue() - } - } -} +// const flushUpdatedQueue = (watchers: Watcher[]) => { +// let i = watchers.length + +// while (i--) { +// const watcher = watchers[i] +// const { +// render, +// inst, +// } = watcher + +// if (render && inst) { +// inst.flushUpdatedQueue() +// } +// } +// } /** flush watcher queue */ const flushWatcherQueue = () => { @@ -49,7 +49,7 @@ const flushWatcherQueue = () => { watcher.run() } - flushUpdatedQueue(watchers) + // flushUpdatedQueue(watchers) // reset watchers.length = 0 diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 49b0910..d00cbb0 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -49,8 +49,8 @@ const defaultPropertyDeclaration: PropertyDeclaration = { }; export const property = (options: PropertyDeclaration = {}) => { - return (target: unknown, propName: string) => { - return (target as { constructor: typeof QuarkElement }).constructor.createProperty( + return (target: QuarkElement, propName: string) => { + return (target.constructor as typeof QuarkElement).createProperty( propName, options ); @@ -58,14 +58,14 @@ export const property = (options: PropertyDeclaration = {}) => { }; export const state = () => { - return (target: unknown, propName: string) => { - return (target as { constructor: typeof QuarkElement }).constructor.createState(propName); + return (target: QuarkElement, propName: string) => { + return (target.constructor as typeof QuarkElement).createState(propName); }; }; export const computed = () => { - return (target: unknown, propName: string, descriptor: PropertyDescriptor) => { - return (target as { constructor: typeof QuarkElement }).constructor.computed( + return (target: QuarkElement, propName: string, descriptor: PropertyDescriptor) => { + return (target.constructor as typeof QuarkElement).computed( propName, descriptor, ); @@ -73,8 +73,8 @@ export const computed = () => { }; export const watch = (path: string, options?: Omit) => { - return (target: unknown, propName: string, descriptor: PropertyDescriptor) => { - return (target as { constructor: typeof QuarkElement }).constructor.watch( + return (target: QuarkElement, propName: string, descriptor: PropertyDescriptor) => { + return (target.constructor as typeof QuarkElement).watch( propName, descriptor, path, @@ -187,8 +187,10 @@ export function customElement( } } - const comp = Object.getPrototypeOf(this.constructor); - const stateDescriptors = StateDescriptors.get(comp); + // * 获取包装类实例的父类(即继承了QuarkElement的类——用户书写的组件类) + // * get parent class (user-defined component class that extends QuarkElement) of wrapper class + const Component = Object.getPrototypeOf(this.constructor); + const stateDescriptors = StateDescriptors.get(Component); if (stateDescriptors?.size) { stateDescriptors.forEach((descriptorCreator, propName) => { @@ -204,7 +206,7 @@ export function customElement( * 重写类的属性描述符,并重写属性初始值。 * 注:由于子类的属性初始化晚于当前基类的构造函数,同名属性会导致属性描述符被覆盖,所以必须放在基类构造函数之后执行 */ - const propDefs = PropDefs.get(comp); + const propDefs = PropDefs.get(Component); if (propDefs?.size) { propDefs.forEach((def, attrName) => { @@ -280,7 +282,7 @@ export function customElement( }); } - const computedDescriptors = ComputedDescriptors.get(comp) + const computedDescriptors = ComputedDescriptors.get(Component) if (computedDescriptors?.size) { computedDescriptors.forEach((descriptorCreator, propKey) => { @@ -292,7 +294,7 @@ export function customElement( }); } - const watchers = UserWatchers.get(comp) + const watchers = UserWatchers.get(Component) if (watchers?.size) { watchers.forEach(({ @@ -313,19 +315,61 @@ export function customElement( export class QuarkElement extends HTMLElement implements ReactiveControllerHost { static h = h; + static Fragment = Fragment; private _updatedQueue: (() => void)[] = []; + /** 组件是否已挂载 */ + private _mounted = false; + private _renderWatcher: Watcher | undefined = undefined; private queueUpdated(cb: () => void) { this._updatedQueue.push(cb) } - public flushUpdatedQueue() { + private hasDidUpdateCb() { + return this.hasOwnLifeCycleMethod('componentDidUpdate'); + } + + private hasOwnLifeCycleMethod(methodName: 'componentDidMount' | 'componentDidUpdate' | 'shouldComponentUpdate') { + return Object.getPrototypeOf( + this.constructor // base class + ) // wrapper class + .prototype // user-defined class + .hasOwnProperty(methodName); + } + + /** handler for processing tasks after render */ + public postRender() { + if (!this._mounted) { + this._mounted = true; + const hasPendingUpdate = !!this._updatedQueue.length; + + if (this.hasOwnLifeCycleMethod('componentDidMount')) { + if (hasPendingUpdate) { + // * when componentDidMount and componentDidUpate are both defined + // * componentDidUpate should be ignored at mount phase + this._updatedQueue = []; + this.componentDidMount(); + return; + } + + this.componentDidMount(); + } else { + // * for historic reasons, componentDidUpate was used for both mounting and updating + // * so we should also call it at mount phase + if (process.env.NODE_ENV === 'development') { + if (hasPendingUpdate) { + console.warn('by design, componentDidUpdate should not be invoked at mount phase, use componentDidMount for initialization logic instead.'); + } + } + } + } + this._updatedQueue.forEach(cb => cb()) - this._updatedQueue = [] + this._updatedQueue = []; } // 内部属性装饰器 @@ -346,12 +390,14 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost return; } + if (this.shouldPreventUpdate(propName, resolvedOldVal, newValue)) { + return; + } + value = newValue; getDep().notify(); - // this._render(); - // this._controllers?.forEach((c) => c.hostUpdated?.()); - if (isFunction(this.componentDidUpdate)) { + if (this.hasDidUpdateCb()) { this.queueUpdated(() => { this.componentDidUpdate(propName, resolvedOldVal, newValue); }); @@ -468,14 +514,13 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost // Reserve, may expand in the future requestUpdate() { - console.log('requestUpdate') + console.error('requestUpdate', this) this.getOrInitRenderWatcher().update(); } // Reserve, may expand in the future update() { - console.log('update') - // this._render() + console.error('update', this) this.getOrInitRenderWatcher().update() } @@ -499,7 +544,7 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost /** * 此时组件 dom 已插入到页面中,等同于 connectedCallback() { super.connectedCallback(); } */ - componentDidMount() {} + componentDidMount() {}; /** * disconnectedCallback 触发时、dom 移除前执行,等同于 disconnectedCallback() { super.disconnectedCallback(); } @@ -507,20 +552,34 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost componentWillUnmount() {} /** - * @deprecated since we have embraced more precisely controlled render scheduler mechanism, - * there's no need to use shouldComponentUpdate any more. + * @deprecated + * since we have embraced more precisely controlled render scheduler mechanism, + * there's no need to use shouldComponentUpdate any more, + * and will be removed in next major version. * * 控制当前属性变化是否导致组件渲染 * @param propName 属性名 - * @param resolvedOldVal 属性旧值 + * @param oldValue 属性旧值 * @param newValue 属性新值 * @returns boolean */ - shouldComponentUpdate(propName: string, resolvedOldVal: any, newValue: any) { - return resolvedOldVal !== newValue; + shouldComponentUpdate(propName: string, oldValue: any, newValue: any) { + return oldValue !== newValue; } - componentDidUpdate(propName: string, resolvedOldVal: any, newValue: any) {} + shouldPreventUpdate(propName: string, oldValue: any, newValue: any) { + if (this.hasOwnLifeCycleMethod('shouldComponentUpdate')) { + return !this.shouldComponentUpdate( + propName, + oldValue, + newValue, + ); + } + + return false; + } + + componentDidUpdate(propName: string, oldValue: any, newValue: any) {}; /** * 组件的 render 方法, @@ -533,25 +592,13 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost private getOrInitRenderWatcher() { if (!this._renderWatcher) { - console.error('getOrInitRenderWatcher if', this); - let initRender = true; this._renderWatcher = new Watcher( this, () => { - console.error('render watcher callback') this._render(); - const renderCbType = !initRender ? 'hostUpdated' : 'hostMounted'; + const renderCbType = this._mounted ? 'hostUpdated' : 'hostMounted'; this._controllers?.forEach((c) => c[renderCbType]?.()); - - if (initRender) { - initRender = false; - - if (isFunction(this.componentDidMount)) { - this.componentDidMount(); - } - } else { - this.flushUpdatedQueue(); - } + this.postRender(); }, { render: true }, ); @@ -595,21 +642,26 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost } } + const newValue = this[propName]; + let resolvedOldVal = oldVal + let oldValReset = this._oldVals.get(propName) + + if (oldValReset) { + this._oldVals.delete(propName) + resolvedOldVal = oldValReset + } + + resolvedOldVal = prop.converter(resolvedOldVal); + + if (this.shouldPreventUpdate(propName, resolvedOldVal, newValue)) { + return; + } + // notify changes to this prop's watchers prop.dep.notify() // this._controllers?.forEach((c) => c.hostUpdated?.()); - if (isFunction(this.componentDidUpdate)) { - const newValue = this[propName]; - let resolvedOldVal = oldVal - let oldValReset = this._oldVals.get(propName) - - if (oldValReset) { - this._oldVals.delete(propName) - resolvedOldVal = oldValReset - } - - resolvedOldVal = prop.converter(resolvedOldVal); + if (this.hasDidUpdateCb()) { this.queueUpdated(() => { this.componentDidUpdate( propName, @@ -628,5 +680,6 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost this.eventController.removeAllListener(); this._controllers?.forEach((c) => c.hostDisconnected?.()); this.rootPatch(null); + this._mounted = false; } } From 1bcacdbb1e2277a54ec840856d1a663a4e9dead8 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Sat, 30 Mar 2024 16:49:04 +0800 Subject: [PATCH 12/19] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81nextTick?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo/src/index.tsx | 3 +-- packages/core/src/computed.ts | 46 ++++++++++++++++++++++++++++++----- packages/core/src/index.ts | 13 +++++++--- 3 files changed, 50 insertions(+), 12 deletions(-) diff --git a/demo/src/index.tsx b/demo/src/index.tsx index ea6247f..465ce17 100644 --- a/demo/src/index.tsx +++ b/demo/src/index.tsx @@ -44,8 +44,7 @@ class MyComponent extends QuarkElement { shouldComponentUpdate(propName, oldValue, newValue) { if (propName === 'innerCount') { - console.log(propName, oldValue, newValue) - return newValue <= 10 || newValue >= 20; + return newValue <= 10; } return true; diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts index deda63d..2d20757 100644 --- a/packages/core/src/computed.ts +++ b/packages/core/src/computed.ts @@ -13,8 +13,10 @@ export type WatcherGetter = () => any const watchers: Watcher[] = [] /** all waiting watchers' id */ const watcherIds = new Set() -/** is there any flush task pending —— before entering next event loop */ -let flushPending = false +/** is there any watcher flush task pending —— before entering next event loop */ +let watcherFlushing = false +/** is there any callback to flush */ +let cbFlushing = false; /** prepare micro task */ const queueMicroTask = (callback: (...args: any[]) => any) => { @@ -25,6 +27,38 @@ const queueMicroTask = (callback: (...args: any[]) => any) => { } }; +const cbs: { (...args: any[]): any }[] = []; +const flushCbs = () => { + const cbsToFlush = cbs.splice(0, cbs.length); + + for (let i = 0; i < cbsToFlush.length; i++) { + cbsToFlush[i](); + } + + cbFlushing = false; +}; + +export const nextTick = (cb?: (...args: any[]) => any, ctx?: any) => { + let _resolve: (value: unknown) => void; + let _promise = !cb && new Promise((resolve) => { + _resolve = resolve; + }); + cbs.push(() => { + if (cb) { + cb.call(ctx) + } else { + _resolve(ctx); + } + }); + + if (!cbFlushing) { + cbFlushing = true; + queueMicroTask(flushCbs); + } + + return _promise; +}; + // const flushUpdatedQueue = (watchers: Watcher[]) => { // let i = watchers.length @@ -54,7 +88,7 @@ const flushWatcherQueue = () => { // reset watchers.length = 0 watcherIds.clear() - flushPending = false + watcherFlushing = false } /** add watcher to queue */ @@ -65,9 +99,9 @@ const queueWatcher = (watcher: Watcher) => { watcherIds.add(id) watchers.push(watcher) - if (!flushPending) { - flushPending = true - queueMicroTask(flushWatcherQueue) + if (!watcherFlushing) { + watcherFlushing = true + nextTick(flushWatcherQueue) } } } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index d00cbb0..e8fe12a 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -5,7 +5,7 @@ import { PropertyDeclaration, converterFunction } from "./models" import DblKeyMap from "./dblKeyMap" import { EventController, EventHandler } from "./eventController" import {version} from '../package.json' -import { Dep, UserWatcherOptions, Watcher } from './computed'; +import { Dep, nextTick, UserWatcherOptions, Watcher } from './computed'; import type { ReactiveControllerHost, ReactiveController } from "./reactiveController" export type { ReactiveControllerHost, ReactiveController } @@ -368,7 +368,7 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost } } - this._updatedQueue.forEach(cb => cb()) + this._updatedQueue.forEach(cb => cb()); this._updatedQueue = []; } @@ -541,10 +541,14 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost ); } + $nextTick(cb: (...args: any[]) => any) { + return nextTick(cb, this); + } + /** * 此时组件 dom 已插入到页面中,等同于 connectedCallback() { super.connectedCallback(); } */ - componentDidMount() {}; + componentDidMount() {} /** * disconnectedCallback 触发时、dom 移除前执行,等同于 disconnectedCallback() { super.disconnectedCallback(); } @@ -579,7 +583,8 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost return false; } - componentDidUpdate(propName: string, oldValue: any, newValue: any) {}; + /** @deprecated use \@watch directive instead for same purposes */ + componentDidUpdate(propName: string, oldValue: any, newValue: any) {} /** * 组件的 render 方法, From 23fa821764a346ac59aa8c0fe1d8af7be8eb488f Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Sat, 30 Mar 2024 17:07:32 +0800 Subject: [PATCH 13/19] chore: update major version --- packages/core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 136a69f..41f72c1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "quarkc", - "version": "1.0.42", + "version": "2.0.0", "description": "Web components quark-element quarkc", "type": "module", "main": "./lib/index.umd.js", From a58ff1162c6f86eb1e0b4c29caec2b718a97f154 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Mon, 1 Apr 2024 11:05:19 +0800 Subject: [PATCH 14/19] fix: sort watchers --- packages/core/src/computed.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts index 2d20757..966ad99 100644 --- a/packages/core/src/computed.ts +++ b/packages/core/src/computed.ts @@ -77,6 +77,9 @@ export const nextTick = (cb?: (...args: any[]) => any, ctx?: any) => { /** flush watcher queue */ const flushWatcherQueue = () => { + // make sure updates from parent to child, user watchers to render watchers. + watchers.sort((a, b) => a.id - b.id); + for (let i = 0; i < watchers.length; i++) { const watcher = watchers[i] watcherIds.delete(watcher.id) From 51334f579649d186f254066cdb0bd149d73258cd Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Mon, 1 Apr 2024 12:50:34 +0800 Subject: [PATCH 15/19] fix: handle watcher sorting when flushing --- packages/core/src/computed.ts | 45 +++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts index 966ad99..196ee3b 100644 --- a/packages/core/src/computed.ts +++ b/packages/core/src/computed.ts @@ -13,8 +13,12 @@ export type WatcherGetter = () => any const watchers: Watcher[] = [] /** all waiting watchers' id */ const watcherIds = new Set() -/** is there any watcher flush task pending —— before entering next event loop */ -let watcherFlushing = false +/** are wathcers being flushed */ +let flushing = false +/** is flushing task already queued */ +let flushWaiting = false; +/** flushing watcher index */ +let flushIndex = 0; /** is there any callback to flush */ let cbFlushing = false; @@ -77,11 +81,12 @@ export const nextTick = (cb?: (...args: any[]) => any, ctx?: any) => { /** flush watcher queue */ const flushWatcherQueue = () => { + flushing = true; // make sure updates from parent to child, user watchers to render watchers. watchers.sort((a, b) => a.id - b.id); - for (let i = 0; i < watchers.length; i++) { - const watcher = watchers[i] + for (flushIndex = 0; flushIndex < watchers.length; flushIndex++) { + const watcher = watchers[flushIndex] watcherIds.delete(watcher.id) watcher.run() } @@ -91,21 +96,37 @@ const flushWatcherQueue = () => { // reset watchers.length = 0 watcherIds.clear() - watcherFlushing = false + flushing = false + flushWaiting = false } /** add watcher to queue */ const queueWatcher = (watcher: Watcher) => { const { id } = watcher - - if (!watcherIds.has(id)) { - watcherIds.add(id) + + if (watcherIds.has(id)) { + return; + } + + watcherIds.add(id) + + if (!flushing) { watchers.push(watcher) - - if (!watcherFlushing) { - watcherFlushing = true - nextTick(flushWatcherQueue) + } else { + let placeIndex = watchers.findIndex(target => target.id > id); + + if (placeIndex === -1) { + placeIndex = watchers.length; + } else if (placeIndex > flushIndex) { + placeIndex = flushIndex + 1; } + + watchers.splice(placeIndex, 0, watcher) + } + + if (!flushWaiting) { + flushWaiting = true; + nextTick(flushWatcherQueue); } } From d6fea89c849095574f9d969ebba19bc9818d5b50 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Mon, 1 Apr 2024 13:08:07 +0800 Subject: [PATCH 16/19] chore: remove console log --- packages/core/src/index.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 48ec61a..0eb558c 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -511,13 +511,11 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost // Reserve, may expand in the future requestUpdate() { - console.error('requestUpdate', this) this.getOrInitRenderWatcher().update(); } // Reserve, may expand in the future update() { - console.error('update', this) this.getOrInitRenderWatcher().update() } From 88cfa04d2fcdf4a0bfa90357ad34e24f1aab6e89 Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Mon, 1 Apr 2024 13:24:01 +0800 Subject: [PATCH 17/19] feat: add componentUpdated hook --- demo4gluang/src/app-header/index.tsx | 21 +++++++++++++++++++-- packages/core/src/index.ts | 15 +++++++++++++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/demo4gluang/src/app-header/index.tsx b/demo4gluang/src/app-header/index.tsx index 08a07de..40a2f33 100644 --- a/demo4gluang/src/app-header/index.tsx +++ b/demo4gluang/src/app-header/index.tsx @@ -1,4 +1,4 @@ -import { QuarkElement, customElement } from "quarkc" +import { QuarkElement, customElement, state, watch } from "quarkc" import style from "./index.less?inline" import suntzu from "./suntzu.jpeg" @@ -10,8 +10,25 @@ import { store } from '../store'; @customElement({ tag: "app-header", style }) class MyComponent extends connectStore(QuarkElement) { + @state() + showAuthorName = false + + @watch('showAuthorName') + handleShowChange(newVal) { + console.log('handleShowChange', newVal) + store.author = newVal ? 'Sun Tzu' : 'Guess who?'; + } + handleSwitch = () => { - store.author = store.author === 'Sun Tzu' ? 'Guess who?' : 'Sun Tzu'; + this.showAuthorName = !this.showAuthorName; + } + + componentDidUpdate(propName, oldVal, newVal) { + console.log('componentDidUpdate', propName, oldVal, newVal) + } + + componentUpdated() { + console.log('componentUpdated', this.showAuthorName, store.author) } render() { diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 0eb558c..0cdefca 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -333,7 +333,7 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost return this.hasOwnLifeCycleMethod('componentDidUpdate'); } - private hasOwnLifeCycleMethod(methodName: 'componentDidMount' | 'componentDidUpdate' | 'shouldComponentUpdate') { + private hasOwnLifeCycleMethod(methodName: 'componentDidMount' | 'componentDidUpdate' | 'shouldComponentUpdate' | 'componentUpdated') { return Object.getPrototypeOf( this.constructor // base class ) // wrapper class @@ -343,7 +343,9 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost /** handler for processing tasks after render */ public postRender() { - if (!this._mounted) { + let mounted = this._mounted; + + if (!mounted) { this._mounted = true; const hasPendingUpdate = !!this._updatedQueue.length; @@ -370,6 +372,12 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost this._updatedQueue.forEach(cb => cb()); this._updatedQueue = []; + + if (mounted) { + if (this.hasOwnLifeCycleMethod('componentUpdated')) { + this.componentUpdated(); + } + } } // 内部属性装饰器 @@ -581,6 +589,9 @@ export class QuarkElement extends HTMLElement implements ReactiveControllerHost /** @deprecated use \@watch directive instead for same purposes */ componentDidUpdate(propName: string, oldValue: any, newValue: any) {} + /** called when all props and states updated */ + componentUpdated() {} + /** * 组件的 render 方法, * 自动执行 this.shadowRoot.innerHTML = this.render() From f7ef189a983b830c560acce55c939bd4409c46ef Mon Sep 17 00:00:00 2001 From: duyifei121 Date: Mon, 1 Apr 2024 14:16:07 +0800 Subject: [PATCH 18/19] fix: missing cbs when flushing --- demo4gluang/src/app-header/index.tsx | 12 ++++++++++-- packages/core/src/computed.ts | 11 +++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/demo4gluang/src/app-header/index.tsx b/demo4gluang/src/app-header/index.tsx index 40a2f33..8d55136 100644 --- a/demo4gluang/src/app-header/index.tsx +++ b/demo4gluang/src/app-header/index.tsx @@ -1,4 +1,4 @@ -import { QuarkElement, customElement, state, watch } from "quarkc" +import { QuarkElement, customElement, state, watch, createRef } from "quarkc" import style from "./index.less?inline" import suntzu from "./suntzu.jpeg" @@ -17,6 +17,12 @@ class MyComponent extends connectStore(QuarkElement) { handleShowChange(newVal) { console.log('handleShowChange', newVal) store.author = newVal ? 'Sun Tzu' : 'Guess who?'; + this.$nextTick(() => { + const { current: btn } = this.btn; + if (btn) { + console.log('nextTick, content of btn:', btn.textContent) + } + }) } handleSwitch = () => { @@ -31,10 +37,12 @@ class MyComponent extends connectStore(QuarkElement) { console.log('componentUpdated', this.showAuthorName, store.author) } + btn = createRef(null) + render() { return (
    -

    The Art of War - {store.author}

    +

    The Art of War - {store.author}

    { store.author === 'Sun Tzu' ? : '' diff --git a/packages/core/src/computed.ts b/packages/core/src/computed.ts index 196ee3b..d920ad2 100644 --- a/packages/core/src/computed.ts +++ b/packages/core/src/computed.ts @@ -19,8 +19,8 @@ let flushing = false let flushWaiting = false; /** flushing watcher index */ let flushIndex = 0; -/** is there any callback to flush */ -let cbFlushing = false; +/** is callbacks flushing task already queued */ +let cbsFlushWaiting = false; /** prepare micro task */ const queueMicroTask = (callback: (...args: any[]) => any) => { @@ -33,13 +33,12 @@ const queueMicroTask = (callback: (...args: any[]) => any) => { const cbs: { (...args: any[]): any }[] = []; const flushCbs = () => { + cbsFlushWaiting = false; const cbsToFlush = cbs.splice(0, cbs.length); for (let i = 0; i < cbsToFlush.length; i++) { cbsToFlush[i](); } - - cbFlushing = false; }; export const nextTick = (cb?: (...args: any[]) => any, ctx?: any) => { @@ -55,8 +54,8 @@ export const nextTick = (cb?: (...args: any[]) => any, ctx?: any) => { } }); - if (!cbFlushing) { - cbFlushing = true; + if (!cbsFlushWaiting) { + cbsFlushWaiting = true; queueMicroTask(flushCbs); } From 736731180acd42d01987fdd0cff3802d2dd6c2df Mon Sep 17 00:00:00 2001 From: xsf Date: Wed, 10 Apr 2024 14:11:37 +0800 Subject: [PATCH 19/19] Update package.json --- packages/core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 797b752..8ae9716 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "quarkc", "version": "2.0.0", - "description": "Web components quark-element quarkc", + "description": "A Web Components framework", "type": "module", "main": "./lib/index.umd.js", "module": "./lib/index.js",