diff --git a/packages/mobile-render/package.json b/packages/mobile-render/package.json index 4d4e8df8e108ba024904a07cd7e271817f5025fa..2f167a8cdc7ee75ab08561e7722bc7d558a66c90 100644 --- a/packages/mobile-render/package.json +++ b/packages/mobile-render/package.json @@ -30,7 +30,6 @@ "vue-router": "^4.3.0" }, "devDependencies": { - "@farris/cli": "workspace:^", "@rushstack/eslint-patch": "^1.8.0", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", @@ -68,11 +67,8 @@ "shelljs": "^0.8.4", "typescript": "^4.6.4", "vite": "^4.1.4", - "vite-plugin-md": "^0.20.0", "vite-plugin-banner": "^0.8.0", "vite-svg-loader": "^4.0.0", - "vitepress": "1.0.0-alpha.8", - "vitepress-theme-demoblock": "1.4.2", "vitest": "^0.29.2", "vue-tsc": "^1.2.0" } diff --git a/packages/mobile-render/src/components/index.ts b/packages/mobile-render/src/components/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/packages/mobile-render/src/services/metadata/form/converters/component-converters/datebox-converter.ts b/packages/mobile-render/src/services/metadata/form/converters/component-converters/datebox-converter.ts new file mode 100644 index 0000000000000000000000000000000000000000..d3d4b2e53e452121041db890c8a5ac5e942ff04d --- /dev/null +++ b/packages/mobile-render/src/services/metadata/form/converters/component-converters/datebox-converter.ts @@ -0,0 +1,46 @@ +import { JsonUtil } from '../../../../../utils/index'; +import { InputConverter } from "./input-converter"; + +/** + * 日期选择框转换器 + */ +class DateBoxConverter extends InputConverter { + + /** + * 执行转换 + */ + public convert(input: any): void { + const originInput = JsonUtil.cloneJsonObj(input); + super.convert(input); + + const editorType = this.getEditorType(originInput.showType); + const displayFormat = this.getDisplayFormat(originInput.format); + input.editor = Object.assign(input.editor, { + type: editorType, + title: undefined, + displayFormat: displayFormat, + maxDate: originInput.maxValue, + minDate: originInput.minValue + }); + } + + /** + * 根据显示类型获取编辑器类型 + */ + private getEditorType(showType: string) { + if (showType === 'datetime') { + return 'datetime-picker'; + } else { + return 'date-picker'; + } + } + + /** + * 获取显示格式 + */ + private getDisplayFormat(oldFormat: string): string { + return oldFormat.replace('dd', 'DD'); + } +} + +export { DateBoxConverter }; diff --git a/packages/mobile-render/src/services/metadata/form/converters/component-converters/enum-field-converter.ts b/packages/mobile-render/src/services/metadata/form/converters/component-converters/enum-field-converter.ts new file mode 100644 index 0000000000000000000000000000000000000000..d1bcac8090666db6e1a8d9ac42ee9685e9c0844e --- /dev/null +++ b/packages/mobile-render/src/services/metadata/form/converters/component-converters/enum-field-converter.ts @@ -0,0 +1,25 @@ +import { JsonUtil } from '../../../../../utils/index'; +import { InputConverter } from "./input-converter"; + +/** + * 枚举选择框转换器 + */ +class EnumFieldConverter extends InputConverter { + + /** + * 执行转换 + */ + public convert(input: any): void { + const originInput = JsonUtil.cloneJsonObj(input); + super.convert(input); + input.editor = Object.assign(input.editor, { + type: 'picker', + title: undefined, + data: originInput.enumData, + valueField: originInput.valueField, + textField: originInput.textField + }); + } +} + +export { EnumFieldConverter }; diff --git a/packages/mobile-render/src/services/metadata/form/converters/component-converters/index.ts b/packages/mobile-render/src/services/metadata/form/converters/component-converters/index.ts index 56616ac311621645381b254f764b740224b8c4e6..ff1345376c0f1a548e3074c5050bf7e4cb9eac1d 100644 --- a/packages/mobile-render/src/services/metadata/form/converters/component-converters/index.ts +++ b/packages/mobile-render/src/services/metadata/form/converters/component-converters/index.ts @@ -3,6 +3,11 @@ export * from './page-content-container-converter'; export * from './button-converter'; export * from './button-group-converter'; export * from './listview-converter'; + export * from './input-converter'; export * from './textbox-converter'; - +export * from './multi-textbox-converter'; +export * from './numeric-box-converter'; +export * from './switch-field-converter'; +export * from './datebox-converter'; +export * from './enum-field-converter'; diff --git a/packages/mobile-render/src/services/metadata/form/converters/component-converters/input-converter.ts b/packages/mobile-render/src/services/metadata/form/converters/component-converters/input-converter.ts index 9f58c57aac8047d5dfb059a9316602013191ca97..180bc5e7ac2f957c11c2092a33ec7e42b68fb419 100644 --- a/packages/mobile-render/src/services/metadata/form/converters/component-converters/input-converter.ts +++ b/packages/mobile-render/src/services/metadata/form/converters/component-converters/input-converter.ts @@ -26,7 +26,12 @@ class InputConverter extends ComponentConverter { input.type = 'form-item'; input.label = originInput.title; input.binding = originInput.binding; - input.editor = originInput; + input.editor = { + required: originInput.require, + readonly: originInput.readonly, + disabled: originInput.disable, + placeholder: originInput.placeholder + }; } } diff --git a/packages/mobile-render/src/services/metadata/form/converters/component-converters/multi-textbox-converter.ts b/packages/mobile-render/src/services/metadata/form/converters/component-converters/multi-textbox-converter.ts new file mode 100644 index 0000000000000000000000000000000000000000..34e898537caf2b31bd82eeb87d68af7fc79ccc44 --- /dev/null +++ b/packages/mobile-render/src/services/metadata/form/converters/component-converters/multi-textbox-converter.ts @@ -0,0 +1,25 @@ +import { JsonUtil } from '../../../../../utils/index'; +import { InputConverter } from "./input-converter"; + +/** + * 多行文本输入框转换器 + */ +class MultiTextBoxConverter extends InputConverter { + + /** + * 执行转换 + */ + public convert(input: any): void { + const originInput = JsonUtil.cloneJsonObj(input); + super.convert(input); + input.editor = Object.assign(input.editor, { + type: 'textarea', + maxLength: originInput.maxLength, + showCount: originInput.showWordLimit, + rows: undefined, + autoSize: originInput.autoSize + }); + } +} + +export { MultiTextBoxConverter }; diff --git a/packages/mobile-render/src/services/metadata/form/converters/component-converters/numeric-box-converter.ts b/packages/mobile-render/src/services/metadata/form/converters/component-converters/numeric-box-converter.ts new file mode 100644 index 0000000000000000000000000000000000000000..6065875f5d8b6c41d752ccd7d4f9b28e174193e3 --- /dev/null +++ b/packages/mobile-render/src/services/metadata/form/converters/component-converters/numeric-box-converter.ts @@ -0,0 +1,24 @@ +import { JsonUtil } from '../../../../../utils/index'; +import { InputConverter } from "./input-converter"; + +/** + * 数值输入框转换器 + */ +class NumericBoxConverter extends InputConverter { + + /** + * 执行转换 + */ + public convert(input: any): void { + const originInput = JsonUtil.cloneJsonObj(input); + super.convert(input); + input.editor = Object.assign(input.editor, { + type: 'number-input', + precision: originInput.precision, + max: originInput.maxValue, + min: originInput.minValue + }); + } +} + +export { NumericBoxConverter }; diff --git a/packages/mobile-render/src/services/metadata/form/converters/component-converters/switch-field-converter.ts b/packages/mobile-render/src/services/metadata/form/converters/component-converters/switch-field-converter.ts new file mode 100644 index 0000000000000000000000000000000000000000..a50e4167676b11e27071efba918f3ce0536fd59f --- /dev/null +++ b/packages/mobile-render/src/services/metadata/form/converters/component-converters/switch-field-converter.ts @@ -0,0 +1,24 @@ +import { JsonUtil } from '../../../../../utils/index'; +import { InputConverter } from "./input-converter"; + +/** + * 开关转换器 + */ +class SwitchFieldConverter extends InputConverter { + + /** + * 执行转换 + */ + public convert(input: any): void { + const originInput = JsonUtil.cloneJsonObj(input); + super.convert(input); + input.editor = Object.assign(input.editor, { + type: 'switch', + onColor: undefined, + offColor: undefined, + size: undefined + }); + } +} + +export { SwitchFieldConverter }; diff --git a/packages/mobile-render/src/services/metadata/form/converters/component-converters/textbox-converter.ts b/packages/mobile-render/src/services/metadata/form/converters/component-converters/textbox-converter.ts index 8b5df4e3a73bcd76cb61883a3ece2eab2ed594f4..9c060fca030173a0e0868ac7760a171ad2c36f94 100644 --- a/packages/mobile-render/src/services/metadata/form/converters/component-converters/textbox-converter.ts +++ b/packages/mobile-render/src/services/metadata/form/converters/component-converters/textbox-converter.ts @@ -1,7 +1,8 @@ +import { JsonUtil } from '../../../../../utils/index'; import { InputConverter } from "./input-converter"; /** - * 按钮组件转换器 + * 单行文本输入框转换器 */ class TextBoxConverter extends InputConverter { @@ -9,8 +10,13 @@ class TextBoxConverter extends InputConverter { * 执行转换 */ public convert(input: any): void { + const originInput = JsonUtil.cloneJsonObj(input); super.convert(input); - input.editor.type = 'input-group'; + input.editor = Object.assign(input.editor, { + type: 'input-group', + maxLength: originInput.maxLength, + formatValidation: undefined + }); } } diff --git a/packages/mobile-render/src/services/metadata/form/converters/converter-factory.ts b/packages/mobile-render/src/services/metadata/form/converters/converter-factory.ts index 03246b603eaadfee5e860309b47b115bc8b0f76c..0aa6e3673608919b09f79dddde3f5380b5b35691 100644 --- a/packages/mobile-render/src/services/metadata/form/converters/converter-factory.ts +++ b/packages/mobile-render/src/services/metadata/form/converters/converter-factory.ts @@ -3,8 +3,8 @@ import { ConverterContext } from './converter-context'; import { SchemasConverter } from './schemas-converter'; import { ViewModelsConverter } from './viewodels-converter'; import { - ComponentConverter, PageContentContainerConverter, ButtonConverter, ButtonGroupConverter, - ListViewConverter, TextBoxConverter + ComponentConverter, PageContentContainerConverter, ButtonConverter, ButtonGroupConverter, ListViewConverter, + TextBoxConverter, MultiTextBoxConverter, NumericBoxConverter, SwitchFieldConverter, DateBoxConverter, EnumFieldConverter } from './component-converters'; type ComponentConverterConstructor = new (context: ConverterContext) => ComponentConverter; @@ -67,7 +67,13 @@ class ConverterFactory { this.cmpConverterCtors.set('Button', ButtonConverter); this.cmpConverterCtors.set('ButtonGroup', ButtonGroupConverter); this.cmpConverterCtors.set('ListView', ListViewConverter); + this.cmpConverterCtors.set('TextBox', TextBoxConverter); + this.cmpConverterCtors.set('MultiTextBox', MultiTextBoxConverter); + this.cmpConverterCtors.set('NumericBox', NumericBoxConverter); + this.cmpConverterCtors.set('SwitchField', SwitchFieldConverter); + this.cmpConverterCtors.set('DateBox', DateBoxConverter); + this.cmpConverterCtors.set('EnumField', EnumFieldConverter); } } diff --git a/packages/mobile-render/src/services/metadata/form/entity-schema-query.ts b/packages/mobile-render/src/services/metadata/form/entity-schema-query.ts index 217844f2c8fef7adfbf24a26c7acb0e91a654000..2c3440545ef139eb3a5bb1a60dc11b1101c42611 100644 --- a/packages/mobile-render/src/services/metadata/form/entity-schema-query.ts +++ b/packages/mobile-render/src/services/metadata/form/entity-schema-query.ts @@ -110,16 +110,18 @@ class EntitySchemaQuery { if (fieldSchema.$type === 'ComplexField') { // 关联字段 - if (fieldSchema.type.$type === 'EntityType') { - const assoFieldSchemas = fieldSchema.type.fields; - this.collectFieldSchemas(assoFieldSchemas, wrappedEntitySchema); - } + // if (fieldSchema.type.$type === 'EntityType') { + // const assoFieldSchemas = fieldSchema.type.fields; + // this.collectFieldSchemas(assoFieldSchemas, wrappedEntitySchema); + // } // 业务字段 - if (fieldSchema.type.$type === 'ObjectType') { - const udtFieldSchemas = fieldSchema.type.fields; - this.collectFieldSchemas(udtFieldSchemas, wrappedEntitySchema); - } + // if (fieldSchema.type.$type === 'ObjectType') { + // const udtFieldSchemas = fieldSchema.type.fields; + // this.collectFieldSchemas(udtFieldSchemas, wrappedEntitySchema); + // } + const assoOrUdtFieldSchemas = fieldSchema.type.fields; + this.collectFieldSchemas(assoOrUdtFieldSchemas, wrappedEntitySchema); } } diff --git a/packages/mobile-render/src/services/metadata/form/form-metadata-converter.ts b/packages/mobile-render/src/services/metadata/form/form-metadata-converter.ts index 031732a573ddc3b21accface0ad07977c54e8f14..a42fd77acb595d20f15fb264ae47d2906f9e65ea 100644 --- a/packages/mobile-render/src/services/metadata/form/form-metadata-converter.ts +++ b/packages/mobile-render/src/services/metadata/form/form-metadata-converter.ts @@ -1,3 +1,4 @@ +import { schemaMap } from '@farris/mobile-ui-vue'; import { ConverterContext, ConverterFactory } from './converters'; /** @@ -13,6 +14,7 @@ class FormMetadataConverter { */ private context: ConverterContext; + /** * 转换器工厂 */ @@ -37,6 +39,7 @@ class FormMetadataConverter { this.convertSchemas(); this.convertViewModels(); this.convertComponents(); + this.removeUnSupportedComponents(); } /** @@ -78,7 +81,7 @@ class FormMetadataConverter { /** * 转换组件结构 */ - private convertComponent(component: any) { + private convertComponent(component: any): void { const componentConverter = this.converterFactory.create(component.type); componentConverter.convert(component); @@ -89,6 +92,39 @@ class FormMetadataConverter { }); } } + + /** + * 移除不受支持的组件 + */ + private removeUnSupportedComponents(): void { + console.group('----------unSupported components----------'); + const vmComponents = this.context.getVmComponents(); + vmComponents.forEach((vmComponent) => { + this.removeUnSupportComponent(vmComponent, null); + }); + console.groupEnd(); + } + + /** + * 移除不受支持的组件 + */ + private removeUnSupportComponent(component: any, parentComponent: any) { + const componentSchema = schemaMap[component.type]; + if (parentComponent && !componentSchema) { + const componentIndex = parentComponent.contents.indexOf(component); + parentComponent.contents.splice(componentIndex, 1); + console.log('unsupported component: ' + component.type); + return; + } + + // 递归删除下级不支持的组件 + if (Array.isArray(component.contents)) { + const childComponents = [...component.contents]; + childComponents.forEach((childComponent: any) => { + this.removeUnSupportComponent(childComponent, component); + }); + } + } } export { FormMetadataConverter }; diff --git a/packages/mobile-render/src/services/metadata/form/form-metadata-data-service.ts b/packages/mobile-render/src/services/metadata/form/form-metadata-data-service.ts index 4961f267cc6535c76639dc3b2735660dedc7117c..347642594ada08adbd100af90188dd0a08519807 100644 --- a/packages/mobile-render/src/services/metadata/form/form-metadata-data-service.ts +++ b/packages/mobile-render/src/services/metadata/form/form-metadata-data-service.ts @@ -18,6 +18,7 @@ export class FormMetadataDataService { * 根据Path加载元数据 */ public loadByFullPath(metadataFullPath: string): Promise { + // metadataFullPath = 'Jiwt/JiwtFarrisVueModule/PCFormTest0327/bo-pcformtest0327-front/metadata/components/PCListCardAd032801.frm'; return this.repository.load(metadataFullPath).then((response: any) => { return this.createMetadata(response); }); diff --git a/packages/mobile-render/src/services/metadata/form/normalizers/form-item-normalizer.ts b/packages/mobile-render/src/services/metadata/form/normalizers/form-item-normalizer.ts index 01d244ef3827eb0f16e400196fc851624d98de3e..e4db3a7a3abd46932c2a71844df3bc98d4cad104 100644 --- a/packages/mobile-render/src/services/metadata/form/normalizers/form-item-normalizer.ts +++ b/packages/mobile-render/src/services/metadata/form/normalizers/form-item-normalizer.ts @@ -12,6 +12,7 @@ class FormItemNormalizer extends ComponentNormalizer { public normalize(component: any, componentSchema: any, viewModelId: string) { super.normalize(component, componentSchema, viewModelId); component.binding.direction = 'TwoWay'; + component.editor.binding = component.binding; this.normalizeEditor(component.editor, viewModelId); } @@ -21,9 +22,6 @@ class FormItemNormalizer extends ComponentNormalizer { public normalizeEditor(editor: any, viewModelId: string) { const editorSchema = schemaMap[editor.type]; super.normalize(editor, editorSchema, viewModelId); - - // 标记binding为双向绑定 - editor.binding.direction = 'TwoWay'; } } diff --git a/packages/mobile-render/src/services/module-config/entity-store-config-builder.ts b/packages/mobile-render/src/services/module-config/entity-store-config-builder.ts index c1e7bd8b5b5ff2b932507be2a3f08db3d9aacc49..3af353f8f82abd5976388144d83cbf3771ad7c46 100644 --- a/packages/mobile-render/src/services/module-config/entity-store-config-builder.ts +++ b/packages/mobile-render/src/services/module-config/entity-store-config-builder.ts @@ -56,7 +56,8 @@ class EntityStoreConfigBuilder { const fieldConfigs = this.buildEntityFieldConfigs(fields, entities); const entityConfig = { idKey, - fields: fieldConfigs + fields: fieldConfigs, + code: entitySchemaNode.code }; return entityConfig; } diff --git a/packages/mobile-render/src/services/module-config/form/form-array-store-config-builder.ts b/packages/mobile-render/src/services/module-config/form/form-array-store-config-builder.ts index b7ff429bae053894be3a0dcd92d5cb445b75a568..7cf9181aac0f2a7223ac818872a87f56cfefce90 100644 --- a/packages/mobile-render/src/services/module-config/form/form-array-store-config-builder.ts +++ b/packages/mobile-render/src/services/module-config/form/form-array-store-config-builder.ts @@ -23,9 +23,15 @@ class FormArrayStoreConfigBuilder { * 构造配置 */ public build(viewModelNode: any): FormArrayStoreConfig { - const stateConfig = this.buildStateConfig(viewModelNode); + const vmComponentNode = this.formMetaQuery.getVmComponentByVmId(viewModelNode.id); + if (!vmComponentNode) { + throw new Error(`Component(viewModel=${viewModelNode.id}) not found`); + } + + const stateConfig = this.buildStateConfig(viewModelNode, vmComponentNode); const storeConfig: FormArrayStoreConfig = { id: viewModelNode.code + '-form-array-store', + displayName: viewModelNode.name, bindingPath: viewModelNode.bindTo, state: stateConfig }; @@ -36,12 +42,7 @@ class FormArrayStoreConfigBuilder { /** * 获取表单状态配置 */ - private buildStateConfig(viewModelNode: any): FormArrayStateConfig { - const vmComponentNode = this.getVmComponentNode(viewModelNode); - if (!vmComponentNode) { - throw new Error(`Component(viewModel=${viewModelNode.id}) not found`); - } - + private buildStateConfig(viewModelNode: any, vmComponentNode: any): FormArrayStateConfig { const controlConfigs = this.buildControlConfigs(viewModelNode, vmComponentNode); const stateConfig: FormArrayStateConfig = { controls: controlConfigs @@ -53,13 +54,19 @@ class FormArrayStoreConfigBuilder { * 构造控件配置集合 */ private buildControlConfigs(viewModelNode: any, vmComponentNode: any): FormControlConfig[] { - const wrappedControlNodes = this.collectWrappedControlNodes(vmComponentNode); - const controlConfigBuilder = new FormControlConfigBuilder(); + // 模拟批量编辑场景 + const mockVmComponentNode = this.getMockVmComponentNode(viewModelNode); + if (!mockVmComponentNode) { + return []; + } + + const formGroupNodes = this.collectFormGroupNodes(mockVmComponentNode); + const controlConfigBuilder = new FormControlConfigBuilder(this.formMetaQuery); const controlConfigs: FormControlConfig[] = []; - wrappedControlNodes.forEach((wrappedControlNode) => { - const controlNode = wrappedControlNode.component; - const controlConfig = controlConfigBuilder.build(viewModelNode, controlNode.editor); + formGroupNodes.forEach((formGroupNode) => { + const controlNode = formGroupNode; + const controlConfig = controlConfigBuilder.build(viewModelNode, controlNode); controlConfigs.push(controlConfig); }); @@ -69,40 +76,35 @@ class FormArrayStoreConfigBuilder { /** * 获取列表对应卡片的表单组件 */ - private getVmComponentNode(viewModelNode: any): any { - const listVmComponentNode = this.formMetaQuery.getVmComponentByVmId(viewModelNode.id); - - // 对用对应卡片的组件模拟批量编辑场景 - const vmComponentNodes = this.formMetaQuery.getVmComponents(); - const cardVmComponentNode = vmComponentNodes.find((vmComponentNode) => { - return vmComponentNode !== listVmComponentNode && vmComponentNode.bindTo === listVmComponentNode.bindTo; + private getMockVmComponentNode(listViewModelNode: any): any { + const allViewModels = this.formMetaQuery.getViewModels() as any[]; + const cardViewModelNode = allViewModels.find((viewModelNode) => { + return viewModelNode !== listViewModelNode && viewModelNode.bindTo === listViewModelNode.bindTo; }); - - if (!listVmComponentNode && !cardVmComponentNode) { - throw new Error(`Component(viewModel=${viewModelNode.id}) not found`); - } - return cardVmComponentNode ? cardVmComponentNode : listVmComponentNode; + const cardVmComponentNode = this.formMetaQuery.getVmComponentByVmId(cardViewModelNode.id); + return cardVmComponentNode; } /** - * 搜集当前VM组件下的所有输入控件 + * 搜集表单控件集合 */ - private collectWrappedControlNodes(vmComponentNode: any): any[] { + public collectFormGroupNodes(parentVmComponentNode: any): any[] { const wrappedComponentNodes = this.formMetaQuery.getWrappedComponents(); - const wrappedControlNode = [] as any[]; + const formGroupNodes = [] as any[]; wrappedComponentNodes.forEach((wrappedComponentNode) => { - if (wrappedComponentNode.viewModelComponent !== vmComponentNode) { + const { component, viewModelComponent } = wrappedComponentNode; + if (viewModelComponent !== parentVmComponentNode) { return; } - - const componentType = wrappedComponentNode.component.type; - if (componentType === 'form-item') { - wrappedControlNode.push(wrappedComponentNode); + if (component.type !== 'form-item') { + return; } + + formGroupNodes.push(component); }); - return wrappedControlNode; + return formGroupNodes; } } diff --git a/packages/mobile-render/src/services/module-config/form/form-control-config-builder.ts b/packages/mobile-render/src/services/module-config/form/form-control-config-builder.ts index d85d8103b863fd7fdc72cb956b8a9b39f930452e..efa898164125f9b8c1d0e449caee2e7b7582ccf8 100644 --- a/packages/mobile-render/src/services/module-config/form/form-control-config-builder.ts +++ b/packages/mobile-render/src/services/module-config/form/form-control-config-builder.ts @@ -1,4 +1,5 @@ import { FormControlConfig } from '@farris/devkit-vue'; +import { FormMetadataQuery } from '../../metadata/index'; import { ValidationRuleCreator } from './validation-rule-creator'; /** @@ -6,6 +7,11 @@ import { ValidationRuleCreator } from './validation-rule-creator'; */ class FormControlConfigBuilder { + /** + * 表单元数据查询 + */ + private formMetaQuery: FormMetadataQuery; + /** * 验证规则创建器 */ @@ -14,7 +20,8 @@ class FormControlConfigBuilder { /** * 构造函数 */ - constructor() { + constructor(formMetaQuery: FormMetadataQuery) { + this.formMetaQuery = formMetaQuery; this.validationRuleCreator = new ValidationRuleCreator(); } @@ -23,10 +30,11 @@ class FormControlConfigBuilder { */ public build(viewModelNode: any, controlNode: any): FormControlConfig { const name = controlNode.id; + const displayName = this.getDisplayName(controlNode); const bindingType = this.getBindingType(controlNode); const bindingPath = this.getBindingPath(viewModelNode, controlNode); const validationRules = this.getValidationRules(controlNode); - const controlConfig = { name, bindingType, bindingPath, validationRules }; + const controlConfig = { name, displayName, bindingType, bindingPath, validationRules }; return controlConfig; } @@ -35,36 +43,45 @@ class FormControlConfigBuilder { * 获取绑定类型 */ private getBindingType(controlNode: any): string { - const bindingType = controlNode.binding.type; - if (bindingType === 'EntityField') { + const { type } = controlNode.binding; + if (type === 'EntityField') { return 'EntityState'; - } else if (bindingType === 'Variable') { + } else if (type === 'Variable') { return 'UIState'; + } else { + throw new Error(`BindingType(type=${type}) unsupported`); } - - throw new Error(`BindingType(type=${bindingType}) unsupported`); } /** * 获取绑定路径 */ private getBindingPath(viewModelNode: any, controlNode: any): string { - const { bindTo } = viewModelNode; - - // Form和FormArray已经记录了实体路径,FormControl上使用相对短路径 - if (bindTo === '/') { - return controlNode.binding.path; + const { type, path } = controlNode.binding; + if (type === 'EntityField') { + const { bindTo } = viewModelNode; + return bindTo === '/' ? path : path.replace(bindTo, ''); + } else if (type === 'Variable') { + return path; } else { - return controlNode.binding.path.replace(bindTo, ''); + throw new Error(`BindingType(type=${type}) unsupported`); } } /** - * 获取绑定路径 + * 获取验证规则 */ private getValidationRules(controlNode: any) { return this.validationRuleCreator.createRules(controlNode); } + + /** + * 获取控件显示名称 + */ + private getDisplayName(controlNode: any) { + const displayName = controlNode.type === 'form-group' ? controlNode.label: controlNode.title; + return displayName; + } } export { FormControlConfigBuilder }; diff --git a/packages/mobile-render/src/services/module-config/form/form-store-config-builder.ts b/packages/mobile-render/src/services/module-config/form/form-store-config-builder.ts index e4c73b300003cc690ce0d82b5bd742041ee9a830..303e51ced71d46c5d43ee5f42985cdbd464be6ec 100644 --- a/packages/mobile-render/src/services/module-config/form/form-store-config-builder.ts +++ b/packages/mobile-render/src/services/module-config/form/form-store-config-builder.ts @@ -23,9 +23,11 @@ class FormStoreConfigBuilder { * 构造配置 */ public build(viewModelNode: any): FormStoreConfig { - const stateConfig = this.buildStateConfig(viewModelNode); + const vmComponentNode = this.formMetaQuery.getVmComponentByVmId(viewModelNode.id); + const stateConfig = this.buildStateConfig(viewModelNode, vmComponentNode); const storeConfig: FormStoreConfig = { id: viewModelNode.code + '-form-store', + displayName: viewModelNode.name, bindingPath: viewModelNode.bindTo, state: stateConfig }; @@ -36,8 +38,7 @@ class FormStoreConfigBuilder { /** * 获取表单状态配置 */ - private buildStateConfig(viewModelNode: any): FormStateConfig { - const vmComponentNode = this.formMetaQuery.getVmComponentByVmId(viewModelNode.id); + private buildStateConfig(viewModelNode: any, vmComponentNode: any): FormStateConfig { if (!vmComponentNode) { throw new Error(`Component(viewModel=${viewModelNode.id}) not found`); } @@ -54,13 +55,13 @@ class FormStoreConfigBuilder { * 构造控件配置集合 */ private buildControlConfigs(viewModelNode: any, vmComponentNode: any): FormControlConfig[] { - const wrappedControlNodes = this.collectWrappedControlNodes(vmComponentNode); - const controlConfigBuilder = new FormControlConfigBuilder(); + const formGroupNodes = this.collectFormGroupNodes(vmComponentNode); + const controlConfigBuilder = new FormControlConfigBuilder(this.formMetaQuery); const controlConfigs: FormControlConfig[] = []; - wrappedControlNodes.forEach((wrappedControlNode) => { - const controlNode = wrappedControlNode.component; - const controlConfig = controlConfigBuilder.build(viewModelNode, controlNode.editor); + formGroupNodes.forEach((formGroupNode) => { + const controlNode = formGroupNode; + const controlConfig = controlConfigBuilder.build(viewModelNode, controlNode); controlConfigs.push(controlConfig); }); @@ -68,23 +69,24 @@ class FormStoreConfigBuilder { } /** - * 搜集当前VM组件下的所有输入控件 + * 搜集表单控件集合 */ - private collectWrappedControlNodes(vmComponentNode: any): any[] { + public collectFormGroupNodes(parentVmComponentNode: any): any[] { const wrappedComponentNodes = this.formMetaQuery.getWrappedComponents(); - const wrappedControlNode = [] as any[]; + const formGroupNodes = [] as any[]; wrappedComponentNodes.forEach((wrappedComponentNode) => { - if (wrappedComponentNode.viewModelComponent !== vmComponentNode) { + const { component, viewModelComponent } = wrappedComponentNode; + if (viewModelComponent !== parentVmComponentNode) { return; } - - const componentType = wrappedComponentNode.component.type; - if (componentType === 'form-item') { - wrappedControlNode.push(wrappedComponentNode); + if (component.type !== 'form-item') { + return; } + + formGroupNodes.push(component); }); - return wrappedControlNode; + return formGroupNodes; } } diff --git a/packages/mobile-render/src/services/module-config/form/validation-rule-creator.ts b/packages/mobile-render/src/services/module-config/form/validation-rule-creator.ts index 342e9a0a5953c5c295f41aeebb37ad8a77efc8b6..0b656ee9574bf6677e1b142189e40662053f8a6b 100644 --- a/packages/mobile-render/src/services/module-config/form/validation-rule-creator.ts +++ b/packages/mobile-render/src/services/module-config/form/validation-rule-creator.ts @@ -1,7 +1,7 @@ import { ValidationRule, RequiredValidationRule, MaxLengthValidationRule, MinLengthValidationRule, MaxValueValidationRule, MinValueValidationRule, MaxDateValidationRule, MinDateValidationRule, - PatternValidationRule, CustomFunctionValidationRule, + PatternValidationRule, CustomFunctionValidationRule, ObjectUtil, StringUtil } from '@farris/devkit-vue'; /** @@ -33,91 +33,141 @@ class ValidationRuleCreator { } /** - * 最大长度 + * 必填 */ public required(controlNode: any): RequiredValidationRule | undefined { - if (!controlNode.require) { + const { required } = controlNode.editor; + if (!this.isValidValue(required)) { return; } - return { name: 'required' }; + if (!required) { + return; + } + + const displayName = this.getDisplayName(controlNode); + const message = `请输入'${displayName}'`; + + return { name: 'required', message }; } /** * 最大长度 */ public maxLength(controlNode: any): MaxLengthValidationRule | undefined { - if (!controlNode.maxLength) { + const { type, maxLength } = controlNode.editor; + + // 数值控件上的maxLength不视为校验规则 + if (type === 'number-input') { return; } - return { name: 'maxLength', maxLength: controlNode.maxLength }; + if (!this.isValidValue(maxLength)) { + return; + } + + const displayName = this.getDisplayName(controlNode); + const message = `'${displayName}'的值不应大于${maxLength}个字符`; + + return { name: 'maxLength', maxLength, message }; } /** * 最小长度 */ public minLength(controlNode: any): MinLengthValidationRule | undefined { - if (!controlNode.minLength) { + const { type, minLength } = controlNode.editor; + + // 数值控件上的minLength不视为校验规则 + if (type === 'number-input') { return; } - return { name: 'minLength', minLength: controlNode.minLength }; + if (!this.isValidValue(minLength)) { + return; + } + + const displayName = this.getDisplayName(controlNode); + const message = `'${displayName}'的值不应小于${minLength}个字符`; + + return { name: 'minLength', minLength, message }; } /** * 最大值 */ public maxValue(controlNode: any): MaxValueValidationRule | undefined { - if (!controlNode.maxValue) { + const { max: maxValue } = controlNode.editor; + if (!this.isValidValue(maxValue)) { return; } - return { name: 'maxValue', maxValue: controlNode.maxValue }; + const displayName = this.getDisplayName(controlNode); + const message = `'${displayName}'的值不应大于${maxValue}`; + + return { name: 'maxValue', maxValue, message }; } /** * 最小值 */ public minValue(controlNode: any): MinValueValidationRule | undefined { - if (!controlNode.minValue) { + const { min: minValue } = controlNode.editor; + if (!this.isValidValue(minValue)) { return; } - return { name: 'minValue', minValue: controlNode.minValue }; + const displayName = this.getDisplayName(controlNode); + const message = `'${displayName}'的值不应小于${minValue}`; + + return { name: 'minValue', minValue: minValue, message }; } /** * 最大日期 */ public maxDate(controlNode: any): MaxDateValidationRule | undefined { - if (!controlNode.maxDate) { + const { maxDate } = controlNode.editor; + if (!this.isValidValue(maxDate)) { return; } - return { name: 'maxDate', maxDate: controlNode.maxDate }; + const displayName = this.getDisplayName(controlNode); + const message = `'${displayName}'的值不应晚于${maxDate}`; + + return { name: 'maxDate', maxDate, message }; } /** * 最小日期 */ public minDate(controlNode: any): MinDateValidationRule | undefined { - if (!controlNode.minDate) { + const { minDate } = controlNode.editor; + if (!this.isValidValue(minDate)) { return; } - return { name: 'minDate', minDate: controlNode.minDate }; + const displayName = this.getDisplayName(controlNode); + const message = `'${displayName}'的值不应早于${minDate}`; + + return { name: 'minDate', minDate, message }; } /** * 正则表达式 */ public pattern(controlNode: any): PatternValidationRule | undefined { - if (!controlNode.formatValidation) { + const { formatValidation } = controlNode.editor; + if (!ObjectUtil.isObject(formatValidation)) { return; } - return { name: 'pattern', pattern: controlNode.expression }; + const { type, expression, message } = formatValidation; + if (type === 'none') { + return; + } + + return { name: 'pattern', pattern: expression, message: message }; } /** @@ -126,6 +176,37 @@ class ValidationRuleCreator { public customFunction(controlNode: any): CustomFunctionValidationRule | null { return null; } + + /** + * 是否是合法规则值 + */ + private isValidValue(value: any): boolean { + + // 空值,不校验 + if (value === null || value === undefined) { + return false; + } + + // 对象类型,不校验 + if (ObjectUtil.isObject(value) === true) { + return false; + } + + // 自定义的表达式不校验 + if (StringUtil.isString(value) && value.includes('viewModel')) { + return false; + } + + return true; + } + + /** + * 获取显示名称 + */ + private getDisplayName(controlNode: any): string { + const displayName = controlNode.type === 'form-group' ? controlNode.label : controlNode.title; + return displayName; + } } export { ValidationRuleCreator }; diff --git a/packages/mobile-render/src/views/page/page.vue b/packages/mobile-render/src/views/page/page.vue index 2be674fbe26936cc35c836ffff63e218e963da91..ab1878056a22ab15b27e97dcd6d165dafbbfbaa5 100644 --- a/packages/mobile-render/src/views/page/page.vue +++ b/packages/mobile-render/src/views/page/page.vue @@ -1,5 +1,5 @@ diff --git a/packages/mobile-ui-vue/components/date-picker/index.ts b/packages/mobile-ui-vue/components/date-picker/index.ts index 5f3654b577a7cbde10f8a12fc2f7caa9bc959361..5b69cbee5568ac95dd2f0393bd176502b149fb78 100644 --- a/packages/mobile-ui-vue/components/date-picker/index.ts +++ b/packages/mobile-ui-vue/components/date-picker/index.ts @@ -6,7 +6,6 @@ import DatePickerInstallless from './src/date-picker.component'; import DatePickerDesign from './src/designer/date-picker.design.component'; import { propsResolver } from './src/date-picker.props'; - const DatePickerPanel = withInstall(DatePickerPanelInstallless); const DatePicker = withInstall(DatePickerInstallless); diff --git a/packages/mobile-ui-vue/components/date-picker/src/date-picker.props.ts b/packages/mobile-ui-vue/components/date-picker/src/date-picker.props.ts index 480357edad5def7aeac221dd99d637b9cea6e333..2f458104e9c181820a55c26ec9ccd93afd2688e5 100644 --- a/packages/mobile-ui-vue/components/date-picker/src/date-picker.props.ts +++ b/packages/mobile-ui-vue/components/date-picker/src/date-picker.props.ts @@ -3,7 +3,7 @@ import { buttonEditProps } from '@/components/button-edit'; import { createPropsResolver } from '@/components/dynamic-resolver'; import { schemaMapper } from './schema/schema-mapper'; import { schemaResolver } from './schema/schema-resolver'; -import inputSchema from './schema/schema.json'; +import datePickerSchema from './schema/date-picker.schema.json'; import { datePickerPanelProps } from './date-picker-panel.props'; export const DATA_PICKER_NAME = 'FmDatePicker'; @@ -17,4 +17,4 @@ export const datePickerProps = { export type DatePickerProps = ExtractPropTypes; -export const propsResolver = createPropsResolver(datePickerProps, inputSchema, schemaMapper, schemaResolver); +export const propsResolver = createPropsResolver(datePickerProps, datePickerSchema, schemaMapper, schemaResolver); diff --git a/packages/mobile-ui-vue/components/date-picker/src/schema/schema.json b/packages/mobile-ui-vue/components/date-picker/src/schema/date-picker.schema.json similarity index 49% rename from packages/mobile-ui-vue/components/date-picker/src/schema/schema.json rename to packages/mobile-ui-vue/components/date-picker/src/schema/date-picker.schema.json index 1674a23b089950c59763076cc2e5be2e9c0a282e..e9c26da211018e28e07e5a626c35a6797e90638b 100644 --- a/packages/mobile-ui-vue/components/date-picker/src/schema/schema.json +++ b/packages/mobile-ui-vue/components/date-picker/src/schema/date-picker.schema.json @@ -2,20 +2,20 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://farris-design.gitee.io/date-picker.schema.json", "title": "date-picker", - "description": "A Farris Input Component", + "description": "日期", "type": "object", "properties": { "id": { - "description": "The unique identifier for a Date Picker", + "description": "标识", "type": "string" }, "type": { - "description": "The type string of Date Picker component", + "description": "控件类型", "type": "string", - "default": "date-picker" + "default": "textarea" }, "appearance": { - "description": "", + "description": "外观", "type": "object", "properties": { "class": { @@ -28,51 +28,61 @@ "default": {} }, "binding": { - "description": "", + "description": "绑定", "type": "object", "default": {} }, - "title": { - "description": "", - "type": "string", - "default": "" + "required": { + "description": "必填", + "type": "boolean", + "default": false }, - "label": { - "description": "", - "type": "string", - "default": "" + "readonly": { + "description": "只读", + "type": "boolean", + "default": false }, - "lableWidth": { - "description": "", - "type": "number" + "disabled": { + "description": "禁用", + "type": "boolean", + "default": false }, "placeholder": { - "description": "", + "description": "提示文本", + "type": "string" + }, + "title": { + "description": "标题", "type": "string", "default": "" }, - "visible": { - "description": "", - "type": "boolean", - "default": true - }, "displayFormat": { - "description": "", - "type": "string", - "default": "YYYY-MM-DD" + "description": "展示格式", + "type": "enum", + "default": "yyyy-MM-dd" }, - "readonly": { - "type": "string", - "default": false + "maxDate": { + "description": "最大日期", + "type": "string" + }, + "minDate": { + "description": "最小日期", + "type": "string" + }, + "onUpdate:modelValue": { + "description": "值更新事件", + "type": "string" } }, + "events": [ + "onUpdate:modelValue" + ], "required": [ "type" ], "ignore": [ "id", - "appearance", - "binding", - "visible" + "type", + "appearance" ] } \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/date-picker/src/schema/schema-mapper.ts b/packages/mobile-ui-vue/components/date-picker/src/schema/schema-mapper.ts index ea8ec8b6d82b1eb20aaf5d37277b0acc9422ee37..6fc7657c6edc1ae23f80104748ebc90730123a79 100644 --- a/packages/mobile-ui-vue/components/date-picker/src/schema/schema-mapper.ts +++ b/packages/mobile-ui-vue/components/date-picker/src/schema/schema-mapper.ts @@ -2,5 +2,6 @@ import { MapperFunction, resolveAppearance } from '@/components/dynamic-resolver export const schemaMapper = new Map([ ['appearance', resolveAppearance], + ['binding', 'modelValue'], ['displayFormat','format'] ]); diff --git a/packages/mobile-ui-vue/components/date-time-picker/index.ts b/packages/mobile-ui-vue/components/date-time-picker/index.ts index c28f63cfddfa2b491895ab27ebf1ff35ded27a99..8857ca520d62af278fb4b6e3a4703e2ec757beac 100644 --- a/packages/mobile-ui-vue/components/date-time-picker/index.ts +++ b/packages/mobile-ui-vue/components/date-time-picker/index.ts @@ -1,11 +1,16 @@ -import { withInstall } from '@components/common'; +import { withInstall, withRegister } from '@components/common'; import DateTimePickerInputInstallless from './src/date-time-picker.component'; import DateTimePickerPanelInstallless from './src/date-time-picker-panel.component'; -export * from './src/date-time-picker-panel.props'; +import { propsResolver } from './src/date-time-picker.props'; +export * from './src/date-time-picker-panel.props'; const DateTimePickerPanel = withInstall(DateTimePickerPanelInstallless); const DateTimePicker = withInstall(DateTimePickerInputInstallless); +// 注册运行时及设计时 +const DATETIME_PICKER_REGISTERED_NAME = 'datetime-picker'; +withRegister(DateTimePicker, { name: DATETIME_PICKER_REGISTERED_NAME, propsResolver }); + export { DateTimePicker, DateTimePickerPanel }; export default DateTimePicker; diff --git a/packages/mobile-ui-vue/components/date-time-picker/src/date-time-picker.props.ts b/packages/mobile-ui-vue/components/date-time-picker/src/date-time-picker.props.ts index 1447215526d52cb2073ebdecd6e93d0c764b4d8c..2806cdb68478f7ed3d12e29ee17349f9fbc0e179 100644 --- a/packages/mobile-ui-vue/components/date-time-picker/src/date-time-picker.props.ts +++ b/packages/mobile-ui-vue/components/date-time-picker/src/date-time-picker.props.ts @@ -1,6 +1,10 @@ import { ExtractPropTypes } from 'vue'; import { buttonEditProps } from '@/components/button-edit'; import { dateTimePickerPanelProps } from './date-time-picker-panel.props'; +import { createPropsResolver } from '../../dynamic-resolver'; +import { schemaResolver } from './schema/schema-resolver'; +import { schemaMapper } from './schema/schema-mapper'; +import dateTimePickerSchema from './schema/datetime-picker.schema.json' export const DATA_TIME_PICKER_NAME = 'FmDateTimePicker'; @@ -10,3 +14,7 @@ export const dateTimePickerProps = { }; export type DateTimePickerProps = ExtractPropTypes; + +export const propsResolver = createPropsResolver( + dateTimePickerProps, dateTimePickerSchema, schemaMapper, schemaResolver +); diff --git a/packages/mobile-ui-vue/components/date-time-picker/src/schema/datetime-picker.schema.json b/packages/mobile-ui-vue/components/date-time-picker/src/schema/datetime-picker.schema.json new file mode 100644 index 0000000000000000000000000000000000000000..75a07a3f60828d429477fa1b2e70057706e492af --- /dev/null +++ b/packages/mobile-ui-vue/components/date-time-picker/src/schema/datetime-picker.schema.json @@ -0,0 +1,88 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://farris-design.gitee.io/date-picker.schema.json", + "title": "datetime-picker", + "description": "日期时间", + "type": "object", + "properties": { + "id": { + "description": "标识", + "type": "string" + }, + "type": { + "description": "控件类型", + "type": "string", + "default": "textarea" + }, + "appearance": { + "description": "外观", + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "style": { + "type": "string" + } + }, + "default": {} + }, + "binding": { + "description": "绑定", + "type": "object", + "default": {} + }, + "required": { + "description": "必填", + "type": "boolean", + "default": false + }, + "readonly": { + "description": "只读", + "type": "boolean", + "default": false + }, + "disabled": { + "description": "禁用", + "type": "boolean", + "default": false + }, + "placeholder": { + "description": "提示文本", + "type": "string" + }, + "title": { + "description": "标题", + "type": "string", + "default": "" + }, + "displayFormat": { + "description": "展示格式", + "type": "enum", + "default": "yyyy-MM-dd HH:mm:ss" + }, + "maxDate": { + "description": "最大日期", + "type": "string" + }, + "minDate": { + "description": "最小日期", + "type": "string" + }, + "onUpdate:modelValue": { + "description": "值更新事件", + "type": "string" + } + }, + "events": [ + "onUpdate:modelValue" + ], + "required": [ + "type" + ], + "ignore": [ + "id", + "type", + "appearance" + ] +} \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/date-time-picker/src/schema/schema-mapper.ts b/packages/mobile-ui-vue/components/date-time-picker/src/schema/schema-mapper.ts new file mode 100644 index 0000000000000000000000000000000000000000..00a707c6fba6386e38aa297ff465abea8714205a --- /dev/null +++ b/packages/mobile-ui-vue/components/date-time-picker/src/schema/schema-mapper.ts @@ -0,0 +1,8 @@ +import { MapperFunction, resolveAppearance } from '@/components/dynamic-resolver'; + +export const schemaMapper = new Map([ + ['appearance', resolveAppearance], + ['binding', 'modelValue'], + ['displayFormat','format'] +]); + diff --git a/packages/mobile-ui-vue/components/date-time-picker/src/schema/schema-resolver.ts b/packages/mobile-ui-vue/components/date-time-picker/src/schema/schema-resolver.ts new file mode 100644 index 0000000000000000000000000000000000000000..660e1e609e11d876dc4227ce631026bfbee8312a --- /dev/null +++ b/packages/mobile-ui-vue/components/date-time-picker/src/schema/schema-resolver.ts @@ -0,0 +1,5 @@ +import { DynamicResolver } from "@/components/dynamic-resolver"; + +export function schemaResolver(resolver: DynamicResolver, schema: Record, context: Record): Record { + return schema; +} diff --git a/packages/mobile-ui-vue/components/form-item/src/schema/form-item.schema.json b/packages/mobile-ui-vue/components/form-item/src/schema/form-item.schema.json index e49a210983655fb9d268c1142994f72c7da9d88b..5053522094959c546b8a7d1c3e76b86854b5403c 100644 --- a/packages/mobile-ui-vue/components/form-item/src/schema/form-item.schema.json +++ b/packages/mobile-ui-vue/components/form-item/src/schema/form-item.schema.json @@ -41,6 +41,11 @@ "description": "", "type": "object", "default": {} + }, + "visible": { + "description": "", + "type": "boolean", + "default": true } }, diff --git a/packages/mobile-ui-vue/components/index.ts b/packages/mobile-ui-vue/components/index.ts index 69d269a675048613ad1ab959c660cfcf8e2c5989..80654fb44c81b2ef72aa7b99ee8c07d57b0bafe7 100644 --- a/packages/mobile-ui-vue/components/index.ts +++ b/packages/mobile-ui-vue/components/index.ts @@ -5,6 +5,8 @@ import ButtonGroup from './button-group'; import Cell from './cell'; import Icon from './icon'; import InputGroup from './input-group'; +import NumberInput from './number-input'; +import Textarea from './textarea'; import Navbar from './navbar'; import Switch from './switch'; import Toast from './toast'; @@ -69,6 +71,8 @@ const components = [ DateTimePickerPanel, Icon, InputGroup, + NumberInput, + Textarea, Navbar, Switch, Toast, @@ -132,6 +136,8 @@ export { DateTimePickerPanel, Icon, InputGroup, + Textarea, + NumberInput, Navbar, Switch, Toast, diff --git a/packages/mobile-ui-vue/components/input-group/src/schema/input-group.schema.json b/packages/mobile-ui-vue/components/input-group/src/schema/input-group.schema.json index e867f1daace70a93e60690124d75bf28066da83d..a166044de2d9e27c10d2e87da2627012f00ff3c3 100644 --- a/packages/mobile-ui-vue/components/input-group/src/schema/input-group.schema.json +++ b/packages/mobile-ui-vue/components/input-group/src/schema/input-group.schema.json @@ -6,16 +6,16 @@ "type": "object", "properties": { "id": { - "description": "", + "description": "标识", "type": "string" }, "type": { - "description": "", + "description": "控件类型", "type": "string", "default": "input-group" }, "appearance": { - "description": "", + "description": "外观", "type": "object", "properties": { "class": { @@ -28,46 +28,38 @@ "default": {} }, "binding": { - "description": "", + "description": "绑定", "type": "object", "default": {} }, - "onUpdate:modelValue": { - "description": "值变化事件", - "type": "string", - "default": "" - }, - "disable": { - "type": "string", + "required": { + "description": "必填", + "type": "boolean", "default": false }, "readonly": { - "type": "string", + "description": "只读", + "type": "boolean", "default": false }, - "title": { - "description": "", - "type": "string", - "default": "" + "disabled": { + "description": "禁用", + "type": "boolean", + "default": false }, - "label": { - "description": "", - "type": "string", - "default": "" + "placeholder": { + "description": "提示文本", + "type": "string" }, - "lableWidth": { - "description": "", - "type": "number" + "formatValidation": { + "description": "验证类型", + "type": "object", + "default": {} }, - "placeholder": { - "description": "", + "onUpdate:modelValue": { + "description": "值更新事件", "type": "string", "default": "" - }, - "visible": { - "description": "", - "type": "boolean", - "default": true } }, "events": [ @@ -78,7 +70,6 @@ ], "ignore": [ "id", - "appearance", - "visible" + "appearance" ] } \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/number-input/index.ts b/packages/mobile-ui-vue/components/number-input/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..7b914dfea58da51850600d2d4f165f5a8e1a1283 --- /dev/null +++ b/packages/mobile-ui-vue/components/number-input/index.ts @@ -0,0 +1,17 @@ +import { withInstall } from '@components/common'; +import NumberInputInstallless from './src/number-input.component'; +import { propsResolver } from './src/number-input.props'; + +export * from './src/number-input.props'; + +const NUMBER_INPUT_REGISTERED_NAME = 'number-input'; + +const NumberInput = withInstall(NumberInputInstallless); + +NumberInput.register = (componentMap: Record, propsResolverMap: Record, configResolverMap: Record, resolverMap: Record) => { + componentMap[NUMBER_INPUT_REGISTERED_NAME] = NumberInput; + propsResolverMap[NUMBER_INPUT_REGISTERED_NAME] = propsResolver; +}; + +export { NumberInput }; +export default NumberInput; diff --git a/packages/mobile-ui-vue/components/number-input/src/number-input.component.tsx b/packages/mobile-ui-vue/components/number-input/src/number-input.component.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5b1f2b1b7860c0f840475568f6bc28069ca5dfde --- /dev/null +++ b/packages/mobile-ui-vue/components/number-input/src/number-input.component.tsx @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { defineComponent, SetupContext } from 'vue'; +import { useBem } from '@/components/common'; +import InputGroup from "@/components/input-group"; +import { NUMBER_INPUT_NAME, numberInputProps, NumberInputProps } from './number-input.props'; + +export default defineComponent({ + name: NUMBER_INPUT_NAME, + props: numberInputProps, + emits: ['update:modelValue'], + setup(props: NumberInputProps, context: SetupContext) { + const { bem } = useBem(NUMBER_INPUT_NAME); + const { emit } = context; + + const handleValueChange = (value: string | number) => { + emit('update:modelValue', value); + }; + + return () => ( + + ); + } +}); diff --git a/packages/mobile-ui-vue/components/number-input/src/number-input.props.ts b/packages/mobile-ui-vue/components/number-input/src/number-input.props.ts new file mode 100644 index 0000000000000000000000000000000000000000..836ba36b0af8cc5c307f6a260ccdeac978528593 --- /dev/null +++ b/packages/mobile-ui-vue/components/number-input/src/number-input.props.ts @@ -0,0 +1,18 @@ +import { ExtractPropTypes } from 'vue'; +import { inputCommonProps } from '@/components/input-group'; +import { createPropsResolver } from '@/components/dynamic-resolver'; +import numberInputSchema from './schema/number-input.schema.json'; +import { schemaMapper } from './schema/schema-mapper'; +import { schemaResolver } from './schema/schema-resolver'; + +export const NUMBER_INPUT_NAME = 'FmNumberInput'; + +export const numberInputProps = { + ...inputCommonProps, + enableNull: { type: Boolean, default: undefined }, + precision: { type: Number, default: 2 } +} as Record; + +export type NumberInputProps = ExtractPropTypes; + +export const propsResolver = createPropsResolver(numberInputProps, numberInputSchema, schemaMapper, schemaResolver); diff --git a/packages/mobile-ui-vue/components/number-input/src/schema/number-input.schema.json b/packages/mobile-ui-vue/components/number-input/src/schema/number-input.schema.json new file mode 100644 index 0000000000000000000000000000000000000000..5efd6ace2fea342015860a35dfdbba641ae5895f --- /dev/null +++ b/packages/mobile-ui-vue/components/number-input/src/schema/number-input.schema.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://farris-design.gitee.io/textarea.schema.json", + "title": "number-input", + "description": "数字输入框", + "type": "object", + "properties": { + "id": { + "description": "标识", + "type": "string" + }, + "type": { + "description": "类型", + "type": "string", + "default": "textarea" + }, + "appearance": { + "description": "外观", + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "style": { + "type": "string" + } + }, + "default": {} + }, + "binding": { + "description": "绑定", + "type": "object", + "default": {} + }, + "required": { + "description": "必填", + "type": "boolean", + "default": false + }, + "readonly": { + "description": "只读", + "type": "boolean", + "default": false + }, + "disabled": { + "description": "禁用", + "type": "boolean", + "default": false + }, + "placeholder": { + "description": "提示文本", + "type": "string", + "default": "" + }, + "precision": { + "description": "精度", + "type": "number", + "default": 0 + }, + "max": { + "description": "最小值", + "type": "number" + }, + "min": { + "description": "最大值", + "type": "number" + }, + "onUpdate:modelValue": { + "description": "值更新事件", + "type": "string" + } + }, + "events": [ + "onUpdate:modelValue" + ], + "required": [ + "type" + ], + "ignore": [ + "id", + "type", + "appearance" + ] +} \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/number-input/src/schema/schema-mapper.ts b/packages/mobile-ui-vue/components/number-input/src/schema/schema-mapper.ts new file mode 100644 index 0000000000000000000000000000000000000000..d1c21abde8bc365f647bada2718e821e5008a2b0 --- /dev/null +++ b/packages/mobile-ui-vue/components/number-input/src/schema/schema-mapper.ts @@ -0,0 +1,6 @@ +import { MapperFunction, resolveAppearance } from '@/components/dynamic-resolver'; + +export const schemaMapper = new Map([ + ['appearance', resolveAppearance], + ['binding', 'modelValue'] +]); diff --git a/packages/mobile-ui-vue/components/number-input/src/schema/schema-resolver.ts b/packages/mobile-ui-vue/components/number-input/src/schema/schema-resolver.ts new file mode 100644 index 0000000000000000000000000000000000000000..660e1e609e11d876dc4227ce631026bfbee8312a --- /dev/null +++ b/packages/mobile-ui-vue/components/number-input/src/schema/schema-resolver.ts @@ -0,0 +1,5 @@ +import { DynamicResolver } from "@/components/dynamic-resolver"; + +export function schemaResolver(resolver: DynamicResolver, schema: Record, context: Record): Record { + return schema; +} diff --git a/packages/mobile-ui-vue/components/picker/index.ts b/packages/mobile-ui-vue/components/picker/index.ts index d63a83af17babf29ad232d30ccf47dfb509292d4..1683a20794b467ccc67f4a2c6c446c7ea34242c0 100644 --- a/packages/mobile-ui-vue/components/picker/index.ts +++ b/packages/mobile-ui-vue/components/picker/index.ts @@ -14,14 +14,13 @@ const PickerPanel = withInstall(PickerPanelInstallless); export * from './src/picker.props'; export * from './src/composition/use-picker-state'; - -const ENUM_FIELD_REGISTERED_NAME = 'enum-field'; +const PICKER_REGISTERED_NAME = 'picker'; const Picker = withInstall(PickerInstallless); // 注册运行时及设计时 -withRegister(Picker, { name: ENUM_FIELD_REGISTERED_NAME, propsResolver }); -withRegisterDesigner(Picker, { name: ENUM_FIELD_REGISTERED_NAME, propsResolver, designerComponent: EnumFieldInputDesign }); +withRegister(Picker, { name: PICKER_REGISTERED_NAME, propsResolver }); +withRegisterDesigner(Picker, { name: PICKER_REGISTERED_NAME, propsResolver, designerComponent: EnumFieldInputDesign }); export { Picker, PickerPanel }; export default Picker; diff --git a/packages/mobile-ui-vue/components/picker/src/picker.props.ts b/packages/mobile-ui-vue/components/picker/src/picker.props.ts index e334441619b2332199615591e8db7346987bf615..b9597c25cfbc3c020eaed82d41e060f5b54fdd30 100644 --- a/packages/mobile-ui-vue/components/picker/src/picker.props.ts +++ b/packages/mobile-ui-vue/components/picker/src/picker.props.ts @@ -1,7 +1,7 @@ import { ExtractPropTypes } from 'vue'; import { buttonEditProps } from '@/components/button-edit'; import { createPropsResolver } from '@/components/dynamic-resolver'; -import inputSchema from './schema/enum-field-input.schema.json'; +import pickerSchema from './schema/picker.schema.json'; import { schemaMapper } from './schema/schema-mapper'; import { schemaResolver } from './schema/schema-resolver'; import { pickerPanelProps } from './picker-panel.props'; @@ -15,4 +15,4 @@ export const pickerProps = { export type PickerProps = ExtractPropTypes; -export const propsResolver = createPropsResolver(pickerProps, inputSchema, schemaMapper, schemaResolver); +export const propsResolver = createPropsResolver(pickerProps, pickerSchema, schemaMapper, schemaResolver); diff --git a/packages/mobile-ui-vue/components/picker/src/schema/enum-field-input.schema.json b/packages/mobile-ui-vue/components/picker/src/schema/picker.schema.json similarity index 58% rename from packages/mobile-ui-vue/components/picker/src/schema/enum-field-input.schema.json rename to packages/mobile-ui-vue/components/picker/src/schema/picker.schema.json index 7cf654531f3a1d981c3f216c334cbe34e2a8e907..697dadb0045e5c7e8610477722c0b296db305218 100644 --- a/packages/mobile-ui-vue/components/picker/src/schema/enum-field-input.schema.json +++ b/packages/mobile-ui-vue/components/picker/src/schema/picker.schema.json @@ -1,21 +1,21 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://farris-design.gitee.io/enum-field.schema.json", - "title": "enum-field", - "description": "A Farris Input Component", + "title": "picker", + "description": "A Farris Picker Component", "type": "object", "properties": { "id": { - "description": "The unique identifier for a Input Group", + "description": "标志", "type": "string" }, "type": { - "description": "The type string of Input Group component", + "description": "控件类型", "type": "string", "default": "enum-field" }, "appearance": { - "description": "", + "description": "外观", "type": "object", "properties": { "class": { @@ -28,56 +28,64 @@ "default": {} }, "binding": { - "description": "", + "description": "绑定", "type": "object", "default": {} }, + "required": { + "description": "必填", + "type": "boolean", + "default": false + }, "readonly": { - "type": "string", + "description": "只读", + "type": "boolean", "default": false }, + "disabled": { + "description": "禁用", + "type": "boolean", + "default": false + }, + "placeholder": { + "description": "提示文本", + "type": "string" + }, "title": { - "description": "", + "description": "标题", "type": "string", "default": "" }, - "label": { - "description": "", + "valueField": { + "description": "值字段", "type": "string", - "default": "" + "default": "id" }, - "lableWidth": { - "description": "", - "type": "number" - }, - "visible": { - "description": "", - "type": "boolean", - "default": true + "textField": { + "description": "显示字段", + "type": "string", + "default": "name" }, "data": { - "description": "", + "description": "数据", "type": "array", "default": [] }, - "enableClear": { - "description": "", - "type": "boolean", - "default": false - }, - "editable": { - "description": "", - "type": "boolean", - "default": false + "onUpdate:modelValue": { + "description": "值更新事件", + "type": "string" } }, + "events": [ + "onUpdate:modelValue" + ], "required": [ "type" ], "ignore": [ "id", + "type", "appearance", - "binding", - "visible" + "binding" ] } \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/picker/src/schema/schema-mapper.ts b/packages/mobile-ui-vue/components/picker/src/schema/schema-mapper.ts index 36cb118f9ceadc98008557fa1636f2f70b2dcd88..5eaaae80f943d7d2e6b8cec1c35de3afafa8dc49 100644 --- a/packages/mobile-ui-vue/components/picker/src/schema/schema-mapper.ts +++ b/packages/mobile-ui-vue/components/picker/src/schema/schema-mapper.ts @@ -2,6 +2,7 @@ import { MapperFunction, resolveAppearance, resolveDataPicker } from '@/componen export const schemaMapper = new Map([ ['appearance', resolveAppearance], - ['data', resolveDataPicker], + ['binding', 'modelValue'], + ['data', 'columns'] ]); diff --git a/packages/mobile-ui-vue/components/register.ts b/packages/mobile-ui-vue/components/register.ts index 7138d16210d7647ba62ce7f2c4c8e047d59f1f06..02f0fe969571bf9a6428251f84f3c07564bf31c1 100644 --- a/packages/mobile-ui-vue/components/register.ts +++ b/packages/mobile-ui-vue/components/register.ts @@ -14,6 +14,12 @@ import Listview from './list-view'; import Form from './form'; import FormItem from './form-item'; import InputGroup from './input-group'; +import Textarea from './textarea'; +import NumberInput from './number-input'; +import Switch from './switch'; +import DatePicker from './date-picker'; +import DateTimePicker from './date-time-picker'; +import Picker from './picker'; const componentMap: Record = {}; const propsConverterMap: Record = {}; @@ -35,7 +41,7 @@ function registerComponents() { Component, PageContainer, PageHeaderContainer, PageBodyContainer, PageFooterContainer, ContentContainer, FloatContainer, Navbar, Button, ButtonGroup, Listview, - Form, FormItem, InputGroup + Form, FormItem, InputGroup, Textarea, NumberInput, Switch, DatePicker, DateTimePicker, Picker ]; componentsToRegister.forEach((componentToRegister) => { componentToRegister.register(componentMap, propsConverterMap, propConfigsConverterMap, resolverMap); diff --git a/packages/mobile-ui-vue/components/switch/src/schema/switch.schema.json b/packages/mobile-ui-vue/components/switch/src/schema/switch.schema.json index 075e96d7a811039d712014be9a71e5e17f5243be..4697e9c71d46ac6b383fb7e1424e91bc7dde07f1 100644 --- a/packages/mobile-ui-vue/components/switch/src/schema/switch.schema.json +++ b/packages/mobile-ui-vue/components/switch/src/schema/switch.schema.json @@ -6,16 +6,16 @@ "type": "object", "properties": { "id": { - "description": "", + "description": "标志", "type": "string" }, "type": { - "description": "", + "description": "控件类型", "type": "string", "default": "switch" }, "appearance": { - "description": "", + "description": "外观", "type": "object", "properties": { "class": { @@ -28,56 +28,36 @@ "default": {} }, "binding": { - "description": "", + "description": "绑定", "type": "object", "default": {} }, - "onUpdate:modelValue": { - "description": "值变化事件", - "type": "string", - "default": "" - }, - "disable": { - "type": "string", + "required": { + "description": "必填", + "type": "boolean", "default": false }, "readonly": { - "type": "string", + "description": "只读", + "type": "boolean", "default": false }, - "title": { - "description": "", - "type": "string", - "default": "" - }, - "label": { - "description": "", - "type": "string", - "default": "" - }, - "lableWidth": { - "description": "", - "type": "number" - }, - "visible": { - "description": "", + "disabled": { + "description": "禁用", "type": "boolean", - "default": true + "default": false }, - "onBackground": { - "description": "", - "type": "string", - "default": "" + "onColor": { + "description": "打开时背景色", + "type": "string" }, - "offBackground": { - "description": "", - "type": "string", - "default": "" + "offColor": { + "description": "关闭时背景色", + "type": "string" }, - "size": { - "description": "", - "type": "number", - "default": 22 + "onUpdate:modelValue": { + "description": "值更新事件", + "type": "string" } }, "events": [ @@ -88,8 +68,6 @@ ], "ignore": [ "id", - "appearance", - "binding", - "visible" + "appearance" ] } \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/textarea/src/schema/schema-mapper.ts b/packages/mobile-ui-vue/components/textarea/src/schema/schema-mapper.ts index acb5af1fe4f6d51d5d2064c663fed69e3d75beea..d1c21abde8bc365f647bada2718e821e5008a2b0 100644 --- a/packages/mobile-ui-vue/components/textarea/src/schema/schema-mapper.ts +++ b/packages/mobile-ui-vue/components/textarea/src/schema/schema-mapper.ts @@ -2,6 +2,5 @@ import { MapperFunction, resolveAppearance } from '@/components/dynamic-resolver export const schemaMapper = new Map([ ['appearance', resolveAppearance], - ['showCount','showWordLimit'], - ['maxLength','maxlength'] + ['binding', 'modelValue'] ]); diff --git a/packages/mobile-ui-vue/components/textarea/src/schema/input.schema.json b/packages/mobile-ui-vue/components/textarea/src/schema/textarea.schema.json similarity index 53% rename from packages/mobile-ui-vue/components/textarea/src/schema/input.schema.json rename to packages/mobile-ui-vue/components/textarea/src/schema/textarea.schema.json index 577a7d531f6034ca0a4aec79deb8104480f21347..44635921d58dd44046b62b70c135f6899cf07ba9 100644 --- a/packages/mobile-ui-vue/components/textarea/src/schema/input.schema.json +++ b/packages/mobile-ui-vue/components/textarea/src/schema/textarea.schema.json @@ -2,20 +2,20 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://farris-design.gitee.io/textarea.schema.json", "title": "textarea", - "description": "A Farris Input Component", + "description": "多行文本", "type": "object", "properties": { "id": { - "description": "The unique identifier for a Input Group", + "description": "标识", "type": "string" }, "type": { - "description": "The type string of Input Group component", + "description": "控件类型", "type": "string", "default": "textarea" }, "appearance": { - "description": "", + "description": "外观", "type": "object", "properties": { "class": { @@ -28,52 +28,61 @@ "default": {} }, "binding": { - "description": "", + "description": "绑定", "type": "object", "default": {} }, + "required": { + "description": "必填", + "type": "boolean", + "default": false + }, "readonly": { - "type": "string", + "description": "只读", + "type": "boolean", "default": false }, - "label": { - "description": "", - "type": "string", - "default": "" + "disabled": { + "description": "禁用", + "type": "boolean", + "default": false }, "placeholder": { - "description": "", - "type": "string", - "default": "" + "description": "提示文本", + "type": "string" }, - "visible": { - "description": "", + "maxLength": { + "description": "最大字数", + "type": "number" + }, + "showCount": { + "description": "显示最大字数", "type": "boolean", "default": true }, "rows": { - "description": "", - "type": "number", - "default": "" + "description": "最大行数", + "type": "number" }, - "showCount": { - "description": "", + "autoHeight": { + "description": "自动高度", "type": "boolean", - "default": true + "default": false }, - "maxLength": { - "description": "", - "type": "number", - "default": 50 + "onUpdate:modelValue": { + "description": "值更新事件", + "type": "string", + "default": "" } }, + "events": [ + "onUpdate:modelValue" + ], "required": [ "type" ], "ignore": [ "id", - "appearance", - "binding", - "visible" + "appearance" ] } \ No newline at end of file diff --git a/packages/mobile-ui-vue/components/textarea/src/textarea.component.tsx b/packages/mobile-ui-vue/components/textarea/src/textarea.component.tsx index d703fe891a30b7b0e44de4827268d4d04521b0ea..21b52cfe0a3abe8f6501a60d7167710fc42e7fc7 100644 --- a/packages/mobile-ui-vue/components/textarea/src/textarea.component.tsx +++ b/packages/mobile-ui-vue/components/textarea/src/textarea.component.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { defineComponent } from 'vue'; +import { defineComponent, SetupContext } from 'vue'; import { useBem } from '@/components/common'; import InputGroup from "@/components/input-group"; import { TEXTAREA_NAME, textareaProps, TextareaProps } from './textarea.props'; @@ -22,11 +22,16 @@ import { TEXTAREA_NAME, textareaProps, TextareaProps } from './textarea.props'; export default defineComponent({ name: TEXTAREA_NAME, props: textareaProps, - setup(props: TextareaProps) { + setup(props: TextareaProps, context: SetupContext) { const { bem } = useBem(TEXTAREA_NAME); + const { emit } = context; + + const handleValueChange = (value: string | number) => { + emit('update:modelValue', value); + }; return () => ( - + ); } }); diff --git a/packages/mobile-ui-vue/components/textarea/src/textarea.props.ts b/packages/mobile-ui-vue/components/textarea/src/textarea.props.ts index 9472bad540880286725158daa00fa5ae12bad792..48beaf60bcc7884720f4101b941e0a0dcf016ca7 100644 --- a/packages/mobile-ui-vue/components/textarea/src/textarea.props.ts +++ b/packages/mobile-ui-vue/components/textarea/src/textarea.props.ts @@ -1,7 +1,7 @@ import { ExtractPropTypes } from 'vue'; import { inputCommonProps } from '@/components/input-group'; import { createPropsResolver } from '@/components/dynamic-resolver'; -import textareaSchema from './schema/input.schema.json'; +import textareaSchema from './schema/textarea.schema.json'; import { schemaMapper } from './schema/schema-mapper'; import { schemaResolver } from './schema/schema-resolver'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d0050322cc7d18452db86c752e5087859436c22..0269a158ed67cc6b95e1a95f324cd86d460afe3e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -293,7 +293,7 @@ importers: version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) @@ -408,7 +408,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -480,10 +480,10 @@ importers: version: 9.0.7 '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) commander: specifier: ^9.4.0 version: 9.5.0 @@ -504,13 +504,13 @@ importers: version: 4.9.5 vite: specifier: ^4.4.1 - version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-css-injected-by-js: specifier: ^3.5.2 - version: 3.5.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 3.5.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-dts: specifier: ^3.9.1 - version: 3.9.1(@types/node@18.19.57)(rollup@4.24.0)(typescript@4.9.5)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 3.9.1(@types/node@20.5.1)(rollup@4.24.0)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) devDependencies: rimraf: specifier: ^5.0.7 @@ -599,10 +599,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -638,7 +638,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -659,28 +659,28 @@ importers: version: 5.6.3 vite: specifier: ^5.3.3 - version: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-dts: specifier: 3.9.1 - version: 3.9.1(@types/node@18.19.57)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 3.9.1(@types/node@20.5.1)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) vitest: specifier: ^1.4.0 - version: 1.6.0(@types/node@18.19.57)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^2.0.0 version: 2.1.6(typescript@5.6.3) @@ -738,7 +738,7 @@ importers: version: 0.4.4(rollup@4.24.0) '@vitejs/plugin-vue': specifier: ^5.1.2 - version: 5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.4(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) core-js: specifier: ^3.38.1 version: 3.39.0 @@ -762,10 +762,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.1 - version: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vue-tsc: specifier: ^2.0.29 version: 2.1.6(typescript@5.6.3) @@ -805,7 +805,7 @@ importers: version: 7.25.7 '@commitlint/cli': specifier: ^19.3.0 - version: 19.5.0(@types/node@18.19.57)(typescript@4.9.5) + version: 19.5.0(@types/node@20.5.1)(typescript@4.9.5) '@commitlint/config-conventional': specifier: ^19.2.0 version: 19.5.0 @@ -835,10 +835,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -874,7 +874,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -892,19 +892,19 @@ importers: version: 4.9.5 vite: specifier: ^4.4.1 - version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -992,10 +992,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -1034,7 +1034,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -1070,19 +1070,19 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1121,17 +1121,17 @@ importers: version: 9.29.1(eslint@9.19.0(jiti@1.21.6)) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vue: specifier: ^3.2.37 version: 3.5.12(typescript@4.9.5) devDependencies: '@vitejs/plugin-vue': specifier: ^3.1.0 - version: 3.2.0(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^2.0.1 - version: 2.1.1(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 2.1.1(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -1143,7 +1143,7 @@ importers: version: 4.9.5 vite: specifier: ^3.1.0 - version: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^0.40.4 version: 0.40.13(typescript@4.9.5) @@ -1213,7 +1213,7 @@ importers: version: 7.25.7 '@commitlint/cli': specifier: ^19.3.0 - version: 19.5.0(@types/node@18.19.57)(typescript@4.9.5) + version: 19.5.0(@types/node@20.5.1)(typescript@4.9.5) '@commitlint/config-conventional': specifier: ^19.2.0 version: 19.5.0 @@ -1243,10 +1243,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -1282,7 +1282,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -1300,19 +1300,19 @@ importers: version: 4.9.5 vite: specifier: ^4.4.1 - version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1446,10 +1446,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -1488,7 +1488,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -1521,19 +1521,19 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1586,9 +1586,6 @@ importers: '@commitlint/config-conventional': specifier: ^17.1.0 version: 17.8.1 - '@farris/cli': - specifier: workspace:^ - version: link:../cli '@rushstack/eslint-patch': specifier: ^1.8.0 version: 1.11.0 @@ -1606,10 +1603,10 @@ importers: version: 7.18.0(eslint@8.57.1)(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -1660,7 +1657,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -1678,25 +1675,16 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) - vite-plugin-md: - specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 - vitepress: - specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) - vitepress-theme-demoblock: - specifier: 1.4.2 - version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) vitest: specifier: ^0.29.2 version: 0.29.8(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) @@ -1766,7 +1754,7 @@ importers: version: 2.2.2 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) patch-vue-directive-ssr: specifier: ^0.0.1 version: 0.0.1 @@ -1778,7 +1766,7 @@ importers: version: 4.9.5 vitepress: specifier: 1.0.0-alpha.10 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -1881,10 +1869,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@4.9.5) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.0 - version: 3.1.0(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + version: 3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -1920,7 +1908,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -1938,22 +1926,22 @@ importers: version: 4.9.5 vite: specifier: ^4.1.4 - version: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + version: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-plugin-md: specifier: ^0.20.0 - version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) + version: 0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 vitepress: specifier: 1.0.0-alpha.8 - version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) + version: 1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5) @@ -2014,7 +2002,7 @@ importers: version: 0.4.4(rollup@4.24.0) '@vitejs/plugin-vue': specifier: ^5.1.2 - version: 5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.4(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) core-js: specifier: ^3.38.1 version: 3.39.0 @@ -2038,10 +2026,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.1 - version: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vue-tsc: specifier: ^2.0.29 version: 2.1.6(typescript@5.6.3) @@ -2089,7 +2077,7 @@ importers: version: 7.8.1 vite-plugin-dts: specifier: ^2.1.0 - version: 2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vue: specifier: ^3.2.37 version: 3.5.12(typescript@5.6.3) @@ -2138,10 +2126,10 @@ importers: version: 7.18.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.1.0(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) '@vue/babel-plugin-jsx': specifier: ^1.1.1 version: 1.2.5(@babel/core@7.25.8) @@ -2177,7 +2165,7 @@ importers: version: 9.3.7 jest: specifier: ^29.0.0 - version: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) ora: specifier: ^6.1.2 version: 6.3.1 @@ -2195,25 +2183,25 @@ importers: version: 5.6.3 vite: specifier: ^5.3.3 - version: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-md: specifier: ^0.21.5 - version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + version: 0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.6.3)) vitepress: specifier: ^1.0.0-alpha.8 - version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) + version: 1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3) vitepress-theme-demoblock: specifier: 1.4.2 version: 1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@5.6.3) vitest: specifier: ^1.4.0 - version: 1.6.0(@types/node@18.19.57)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + version: 1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue-tsc: specifier: ^2.0.0 version: 2.1.6(typescript@5.6.3) @@ -7213,7 +7201,7 @@ packages: resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} engines: {node: '>= 4.0'} os: [darwin] - deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 + deprecated: Upgrade to fsevents v2 to mitigate potential security issues fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -12734,11 +12722,11 @@ snapshots: - '@swc/core' - '@swc/wasm' - '@commitlint/cli@19.5.0(@types/node@18.19.57)(typescript@4.9.5)': + '@commitlint/cli@19.5.0(@types/node@18.19.57)(typescript@5.6.3)': dependencies: '@commitlint/format': 19.5.0 '@commitlint/lint': 19.5.0 - '@commitlint/load': 19.5.0(@types/node@18.19.57)(typescript@4.9.5) + '@commitlint/load': 19.5.0(@types/node@18.19.57)(typescript@5.6.3) '@commitlint/read': 19.5.0 '@commitlint/types': 19.5.0 tinyexec: 0.3.1 @@ -12747,11 +12735,11 @@ snapshots: - '@types/node' - typescript - '@commitlint/cli@19.5.0(@types/node@18.19.57)(typescript@5.6.3)': + '@commitlint/cli@19.5.0(@types/node@20.5.1)(typescript@4.9.5)': dependencies: '@commitlint/format': 19.5.0 '@commitlint/lint': 19.5.0 - '@commitlint/load': 19.5.0(@types/node@18.19.57)(typescript@5.6.3) + '@commitlint/load': 19.5.0(@types/node@20.5.1)(typescript@4.9.5) '@commitlint/read': 19.5.0 '@commitlint/types': 19.5.0 tinyexec: 0.3.1 @@ -12843,27 +12831,27 @@ snapshots: '@commitlint/types': 17.8.1 '@types/node': 20.5.1 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@4.9.5) - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig: 8.3.6(typescript@5.6.3) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.6.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.2(@types/node@18.19.57)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@commitlint/load@19.5.0(@types/node@18.19.57)(typescript@4.9.5)': + '@commitlint/load@19.5.0(@types/node@18.19.57)(typescript@5.6.3)': dependencies: '@commitlint/config-validator': 19.5.0 '@commitlint/execute-rule': 19.5.0 '@commitlint/resolve-extends': 19.5.0 '@commitlint/types': 19.5.0 chalk: 5.3.0 - cosmiconfig: 9.0.0(typescript@4.9.5) - cosmiconfig-typescript-loader: 5.1.0(@types/node@18.19.57)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5) + cosmiconfig: 9.0.0(typescript@5.6.3) + cosmiconfig-typescript-loader: 5.1.0(@types/node@18.19.57)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -12871,15 +12859,15 @@ snapshots: - '@types/node' - typescript - '@commitlint/load@19.5.0(@types/node@18.19.57)(typescript@5.6.3)': + '@commitlint/load@19.5.0(@types/node@20.5.1)(typescript@4.9.5)': dependencies: '@commitlint/config-validator': 19.5.0 '@commitlint/execute-rule': 19.5.0 '@commitlint/resolve-extends': 19.5.0 '@commitlint/types': 19.5.0 chalk: 5.3.0 - cosmiconfig: 9.0.0(typescript@5.6.3) - cosmiconfig-typescript-loader: 5.1.0(@types/node@18.19.57)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig: 9.0.0(typescript@4.9.5) + cosmiconfig-typescript-loader: 5.1.0(@types/node@20.5.1)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -13509,7 +13497,7 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -13523,7 +13511,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -13730,6 +13718,14 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@microsoft/api-extractor-model@7.28.13(@types/node@20.5.1)': + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2(@types/node@20.5.1) + transitivePeerDependencies: + - '@types/node' + '@microsoft/api-extractor-model@7.29.8(@types/node@18.19.57)': dependencies: '@microsoft/tsdoc': 0.15.0 @@ -13738,6 +13734,14 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@microsoft/api-extractor-model@7.29.8(@types/node@20.5.1)': + dependencies: + '@microsoft/tsdoc': 0.15.0 + '@microsoft/tsdoc-config': 0.17.0 + '@rushstack/node-core-library': 5.9.0(@types/node@20.5.1) + transitivePeerDependencies: + - '@types/node' + '@microsoft/api-extractor@7.43.0(@types/node@18.19.57)': dependencies: '@microsoft/api-extractor-model': 7.28.13(@types/node@18.19.57) @@ -13756,6 +13760,24 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@microsoft/api-extractor@7.43.0(@types/node@20.5.1)': + dependencies: + '@microsoft/api-extractor-model': 7.28.13(@types/node@20.5.1) + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2(@types/node@20.5.1) + '@rushstack/rig-package': 0.5.2 + '@rushstack/terminal': 0.10.0(@types/node@20.5.1) + '@rushstack/ts-command-line': 4.19.1(@types/node@20.5.1) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.2 + transitivePeerDependencies: + - '@types/node' + '@microsoft/api-extractor@7.47.11(@types/node@18.19.57)': dependencies: '@microsoft/api-extractor-model': 7.29.8(@types/node@18.19.57) @@ -13774,6 +13796,24 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@microsoft/api-extractor@7.47.11(@types/node@20.5.1)': + dependencies: + '@microsoft/api-extractor-model': 7.29.8(@types/node@20.5.1) + '@microsoft/tsdoc': 0.15.0 + '@microsoft/tsdoc-config': 0.17.0 + '@rushstack/node-core-library': 5.9.0(@types/node@20.5.1) + '@rushstack/rig-package': 0.5.3 + '@rushstack/terminal': 0.14.2(@types/node@20.5.1) + '@rushstack/ts-command-line': 4.23.0(@types/node@20.5.1) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.2 + transitivePeerDependencies: + - '@types/node' + '@microsoft/tsdoc-config@0.16.2': dependencies: '@microsoft/tsdoc': 0.14.2 @@ -14007,6 +14047,18 @@ snapshots: optionalDependencies: '@types/node': 18.19.57 + '@rushstack/node-core-library@3.66.1(@types/node@20.5.1)': + dependencies: + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + z-schema: 5.0.5 + optionalDependencies: + '@types/node': 20.5.1 + '@rushstack/node-core-library@4.0.2(@types/node@18.19.57)': dependencies: fs-extra: 7.0.1 @@ -14018,6 +14070,17 @@ snapshots: optionalDependencies: '@types/node': 18.19.57 + '@rushstack/node-core-library@4.0.2(@types/node@20.5.1)': + dependencies: + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + z-schema: 5.0.5 + optionalDependencies: + '@types/node': 20.5.1 + '@rushstack/node-core-library@5.9.0(@types/node@18.19.57)': dependencies: ajv: 8.13.0 @@ -14031,6 +14094,19 @@ snapshots: optionalDependencies: '@types/node': 18.19.57 + '@rushstack/node-core-library@5.9.0(@types/node@20.5.1)': + dependencies: + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv-formats: 3.0.1(ajv@8.13.0) + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + optionalDependencies: + '@types/node': 20.5.1 + '@rushstack/rig-package@0.5.2': dependencies: resolve: 1.22.8 @@ -14048,6 +14124,13 @@ snapshots: optionalDependencies: '@types/node': 18.19.57 + '@rushstack/terminal@0.10.0(@types/node@20.5.1)': + dependencies: + '@rushstack/node-core-library': 4.0.2(@types/node@20.5.1) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 20.5.1 + '@rushstack/terminal@0.14.2(@types/node@18.19.57)': dependencies: '@rushstack/node-core-library': 5.9.0(@types/node@18.19.57) @@ -14055,6 +14138,13 @@ snapshots: optionalDependencies: '@types/node': 18.19.57 + '@rushstack/terminal@0.14.2(@types/node@20.5.1)': + dependencies: + '@rushstack/node-core-library': 5.9.0(@types/node@20.5.1) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 20.5.1 + '@rushstack/ts-command-line@4.19.1(@types/node@18.19.57)': dependencies: '@rushstack/terminal': 0.10.0(@types/node@18.19.57) @@ -14064,6 +14154,15 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@rushstack/ts-command-line@4.19.1(@types/node@20.5.1)': + dependencies: + '@rushstack/terminal': 0.10.0(@types/node@20.5.1) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + '@rushstack/ts-command-line@4.23.0(@types/node@18.19.57)': dependencies: '@rushstack/terminal': 0.14.2(@types/node@18.19.57) @@ -14073,6 +14172,15 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@rushstack/ts-command-line@4.23.0(@types/node@20.5.1)': + dependencies: + '@rushstack/terminal': 0.14.2(@types/node@20.5.1) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + '@sentry/core@5.30.0': dependencies: '@sentry/hub': 5.30.0 @@ -14644,12 +14752,12 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-vue-jsx@2.1.1(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + '@vitejs/plugin-vue-jsx@2.1.1(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) - vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - supports-color @@ -14664,12 +14772,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue-jsx@3.1.0(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + vue: 3.5.12(typescript@4.9.5) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + dependencies: + '@babel/core': 7.25.8 + '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - supports-color @@ -14698,14 +14816,29 @@ snapshots: vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) + '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': + dependencies: + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + vue: 3.5.12(typescript@4.9.5) + + '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + dependencies: + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + vue: 3.5.12(typescript@5.6.3) + '@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) - '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5))': dependencies: - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + vue: 3.5.12(typescript@4.9.5) + + '@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + dependencies: + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) '@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': @@ -14713,6 +14846,11 @@ snapshots: vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) + '@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))': + dependencies: + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vue: 3.5.12(typescript@5.6.3) + '@vitest/expect@0.29.8': dependencies: '@vitest/spy': 0.29.8 @@ -15139,14 +15277,14 @@ snapshots: - terser - vite - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))': dependencies: '@types/markdown-it': 12.2.3 '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) fp-ts: 2.16.9 inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitejs/plugin-vue' @@ -15164,14 +15302,14 @@ snapshots: - terser - vite - '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': + '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': dependencies: '@types/markdown-it': 12.2.3 '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitejs/plugin-vue' @@ -15189,42 +15327,21 @@ snapshots: - terser - vite - '@yankeeinlondon/builder-api@1.4.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)': - dependencies: - '@types/markdown-it': 12.2.3 - '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - fp-ts: 2.16.9 - inferred-types: 0.37.6(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - markdown-it: 13.0.2 - vite-plugin-md: 0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - encoding - - happy-dom - - jsdom - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - '@yankeeinlondon/builder-api@1.4.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)': + '@yankeeinlondon/builder-api@1.4.1(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))': dependencies: '@types/markdown-it': 12.2.3 '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) fp-ts: 2.16.9 - inferred-types: 0.37.6 + inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 vite-plugin-md: 0.22.5(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) transitivePeerDependencies: - '@edge-runtime/vm' + - '@vitejs/plugin-vue' - '@vitest/browser' - '@vitest/ui' - encoding + - happy-dom - jsdom - less - lightningcss @@ -15233,14 +15350,7 @@ snapshots: - sugarss - supports-color - terser - - '@yankeeinlondon/gray-matter@6.2.1': - dependencies: - inferred-types: 0.37.6 - js-yaml: 4.1.0 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 + - vite '@yankeeinlondon/gray-matter@6.2.1(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)': dependencies: @@ -15984,7 +16094,7 @@ snapshots: dependencies: bumpp: 8.2.1 callsites: 4.2.0 - inferred-types: 0.37.6 + inferred-types: 0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) vitest: 0.25.8(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' @@ -16738,20 +16848,13 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3))(typescript@5.6.3): + cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.3))(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5))(typescript@5.6.3): dependencies: '@types/node': 20.5.1 - cosmiconfig: 8.3.6(typescript@4.9.5) - ts-node: 10.9.2(@types/node@18.19.57)(typescript@4.9.5) + cosmiconfig: 8.3.6(typescript@5.6.3) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) typescript: 5.6.3 - cosmiconfig-typescript-loader@5.1.0(@types/node@18.19.57)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5): - dependencies: - '@types/node': 18.19.57 - cosmiconfig: 9.0.0(typescript@4.9.5) - jiti: 1.21.6 - typescript: 4.9.5 - cosmiconfig-typescript-loader@5.1.0(@types/node@18.19.57)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3): dependencies: '@types/node': 18.19.57 @@ -16759,14 +16862,21 @@ snapshots: jiti: 1.21.6 typescript: 5.6.3 - cosmiconfig@8.3.6(typescript@4.9.5): + cosmiconfig-typescript-loader@5.1.0(@types/node@20.5.1)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5): + dependencies: + '@types/node': 20.5.1 + cosmiconfig: 9.0.0(typescript@4.9.5) + jiti: 1.21.6 + typescript: 4.9.5 + + cosmiconfig@8.3.6(typescript@5.6.3): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 4.9.5 + typescript: 5.6.3 cosmiconfig@9.0.0(typescript@4.9.5): dependencies: @@ -16838,13 +16948,28 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): + create-jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + create-jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -18923,10 +19048,6 @@ snapshots: index-to-position@0.1.2: {} - inferred-types@0.37.6: - dependencies: - brilliant-errors: 0.7.3(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - inferred-types@0.37.6(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): dependencies: brilliant-errors: 0.7.3(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) @@ -19402,16 +19523,35 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): + jest-cli@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-cli@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + create-jest: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -19447,7 +19587,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.57 - ts-node: 10.9.2(@types/node@18.19.57)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -19483,7 +19623,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): dependencies: '@babel/core': 7.25.8 '@jest/test-sequencer': 29.7.0 @@ -19509,7 +19649,69 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.57 - ts-node: 10.9.2(@types/node@18.19.57)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@4.9.5) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): + dependencies: + '@babel/core': 7.25.8 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.25.8) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.5.1 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@4.9.5) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): + dependencies: + '@babel/core': 7.25.8 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.25.8) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.5.1 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -19777,12 +19979,24 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): + jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)): + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@18.19.57)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) + jest-cli: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -22524,7 +22738,7 @@ snapshots: '@ts-morph/common': 0.19.0 code-block-writer: 12.0.0 - ts-node@10.9.2(@types/node@18.19.57)(typescript@4.9.5): + ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -22538,27 +22752,28 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.6.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@18.19.57)(typescript@5.6.3): + ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.57 + '@types/node': 20.5.1 acorn: 8.13.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.6.3 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optional: true ts-node@10.9.2(@types/node@20.5.1)(typescript@5.6.3): dependencies: @@ -22901,13 +23116,31 @@ snapshots: - supports-color - terser + vite-node@1.6.0(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): + dependencies: + cac: 6.7.14 + debug: 4.3.7 + pathe: 1.1.2 + picocolors: 1.1.1 + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vite-plugin-banner@0.8.0: {} - vite-plugin-css-injected-by-js@3.5.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-css-injected-by-js@3.5.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): dependencies: - vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) - vite-plugin-dts@2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: '@babel/parser': 7.25.8 '@microsoft/api-extractor': 7.47.11(@types/node@18.19.57) @@ -22919,52 +23152,87 @@ snapshots: kolorist: 1.8.0 magic-string: 0.29.0 ts-morph: 18.0.0 - vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): dependencies: '@babel/parser': 7.25.8 - '@microsoft/api-extractor': 7.47.11(@types/node@18.19.57) + '@microsoft/api-extractor': 7.47.11(@types/node@20.5.1) '@rollup/pluginutils': 5.1.2(rollup@4.24.0) - '@rushstack/node-core-library': 3.66.1(@types/node@18.19.57) + '@rushstack/node-core-library': 3.66.1(@types/node@20.5.1) debug: 4.3.7 fast-glob: 3.3.2 fs-extra: 10.1.0 kolorist: 1.8.0 magic-string: 0.29.0 ts-morph: 18.0.0 - vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@2.3.0(@types/node@18.19.57)(rollup@4.24.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): dependencies: '@babel/parser': 7.25.8 - '@microsoft/api-extractor': 7.47.11(@types/node@18.19.57) + '@microsoft/api-extractor': 7.47.11(@types/node@20.5.1) '@rollup/pluginutils': 5.1.2(rollup@4.24.0) - '@rushstack/node-core-library': 3.66.1(@types/node@18.19.57) + '@rushstack/node-core-library': 3.66.1(@types/node@20.5.1) debug: 4.3.7 fast-glob: 3.3.2 fs-extra: 10.1.0 kolorist: 1.8.0 magic-string: 0.29.0 ts-morph: 18.0.0 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + + vite-plugin-dts@2.3.0(@types/node@20.5.1)(rollup@4.24.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + dependencies: + '@babel/parser': 7.25.8 + '@microsoft/api-extractor': 7.47.11(@types/node@20.5.1) + '@rollup/pluginutils': 5.1.2(rollup@4.24.0) + '@rushstack/node-core-library': 3.66.1(@types/node@20.5.1) + debug: 4.3.7 + fast-glob: 3.3.2 + fs-extra: 10.1.0 + kolorist: 1.8.0 + magic-string: 0.29.0 + ts-morph: 18.0.0 + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@3.9.1(@types/node@18.19.57)(rollup@4.24.0)(typescript@4.9.5)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@3.9.1(@types/node@18.19.57)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: '@microsoft/api-extractor': 7.43.0(@types/node@18.19.57) '@rollup/pluginutils': 5.1.2(rollup@4.24.0) + '@vue/language-core': 1.8.27(typescript@5.6.3) + debug: 4.3.7 + kolorist: 1.8.0 + magic-string: 0.30.12 + typescript: 5.6.3 + vue-tsc: 1.8.27(typescript@5.6.3) + optionalDependencies: + vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + + vite-plugin-dts@3.9.1(@types/node@20.5.1)(rollup@4.24.0)(typescript@4.9.5)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): + dependencies: + '@microsoft/api-extractor': 7.43.0(@types/node@20.5.1) + '@rollup/pluginutils': 5.1.2(rollup@4.24.0) '@vue/language-core': 1.8.27(typescript@4.9.5) debug: 4.3.7 kolorist: 1.8.0 @@ -22972,15 +23240,15 @@ snapshots: typescript: 4.9.5 vue-tsc: 1.8.27(typescript@4.9.5) optionalDependencies: - vite: 4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@3.9.1(@types/node@18.19.57)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-dts@3.9.1(@types/node@20.5.1)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@microsoft/api-extractor': 7.43.0(@types/node@18.19.57) + '@microsoft/api-extractor': 7.43.0(@types/node@20.5.1) '@rollup/pluginutils': 5.1.2(rollup@4.24.0) '@vue/language-core': 1.8.27(typescript@5.6.3) debug: 4.3.7 @@ -22989,7 +23257,7 @@ snapshots: typescript: 5.6.3 vue-tsc: 1.8.27(typescript@5.6.3) optionalDependencies: - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup @@ -23019,14 +23287,38 @@ snapshots: - terser - vite - vite-plugin-md@0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.20.6(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): + dependencies: + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + gray-matter: 4.0.3 + markdown-it: 13.0.2 + source-map-js: 1.2.1 + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitejs/plugin-vue' + - '@vitest/browser' + - '@vitest/ui' + - encoding + - happy-dom + - jsdom + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - vite + + vite-plugin-md@0.21.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitejs/plugin-vue' @@ -23070,7 +23362,7 @@ snapshots: vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)): dependencies: '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) - '@yankeeinlondon/builder-api': 1.4.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0)) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 @@ -23091,15 +23383,39 @@ snapshots: - supports-color - terser - vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)): dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@vitejs/plugin-vue': 4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0)) '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - encoding + - happy-dom + - jsdom + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vite-plugin-md@0.22.5(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): + dependencies: + '@vitejs/plugin-vue': 4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@4.6.2(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@8.9.0)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) + markdown-it: 13.0.2 + source-map-js: 1.2.1 + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -23118,8 +23434,8 @@ snapshots: vite-plugin-md@0.22.5(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)): dependencies: '@vitejs/plugin-vue': 5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@yankeeinlondon/builder-api': 1.4.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) - '@yankeeinlondon/gray-matter': 6.2.1 + '@yankeeinlondon/builder-api': 1.4.1(@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)))(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0)(vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0)) + '@yankeeinlondon/gray-matter': 6.2.1(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) '@yankeeinlondon/happy-wrapper': 2.10.1(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0) markdown-it: 13.0.2 source-map-js: 1.2.1 @@ -23170,6 +23486,18 @@ snapshots: sass: 1.80.3 terser: 5.36.0 + vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0): + dependencies: + esbuild: 0.15.18 + postcss: 8.4.47 + resolve: 1.22.8 + rollup: 2.79.2 + optionalDependencies: + '@types/node': 20.5.1 + fsevents: 2.3.3 + sass: 1.80.3 + terser: 5.36.0 + vite@4.5.5(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.18.20 @@ -23181,6 +23509,17 @@ snapshots: sass: 1.80.3 terser: 5.36.0 + vite@4.5.5(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0): + dependencies: + esbuild: 0.18.20 + postcss: 8.4.47 + rollup: 3.29.5 + optionalDependencies: + '@types/node': 20.5.1 + fsevents: 2.3.3 + sass: 1.80.3 + terser: 5.36.0 + vite@5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: esbuild: 0.21.5 @@ -23193,6 +23532,18 @@ snapshots: sass-embedded: 1.80.3 terser: 5.36.0 + vite@5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.24.0 + optionalDependencies: + '@types/node': 20.5.1 + fsevents: 2.3.3 + sass: 1.80.3 + sass-embedded: 1.80.3 + terser: 5.36.0 + vitepress-theme-demoblock@1.4.2(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(typescript@4.9.5): dependencies: camelcase: 6.3.0 @@ -23307,16 +23658,16 @@ snapshots: - supports-color - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): + vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): dependencies: '@docsearch/css': 3.6.2 '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) '@vue/devtools-api': 6.6.4 '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.11(@types/node@18.19.57)(sass@1.80.3)(terser@5.36.0) + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) vue: 3.5.12(typescript@4.9.5) transitivePeerDependencies: - '@algolia/client-search' @@ -23333,7 +23684,33 @@ snapshots: - terser - typescript - vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): + vitepress@1.0.0-alpha.10(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@5.6.3): + dependencies: + '@docsearch/css': 3.6.2 + '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + '@vue/devtools-api': 6.6.4 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@5.6.3)) + body-scroll-lock: 4.0.0-beta.0 + shiki: 0.11.1 + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + vue: 3.5.12(typescript@5.6.3) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - less + - react + - react-dom + - sass + - search-insights + - stylus + - sugarss + - terser + - typescript + + vitepress@1.0.0-alpha.10(@types/node@18.19.57)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(terser@5.36.0)(typescript@5.6.3): dependencies: '@docsearch/css': 3.6.2 '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) @@ -23385,6 +23762,32 @@ snapshots: - terser - typescript + vitepress@1.0.0-alpha.8(@algolia/client-search@4.24.0)(@types/node@20.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(sass@1.80.3)(search-insights@2.17.2)(terser@5.36.0)(typescript@4.9.5): + dependencies: + '@docsearch/css': 3.6.2 + '@docsearch/js': 3.6.2(@algolia/client-search@4.24.0)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(search-insights@2.17.2) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0))(vue@3.5.12(typescript@4.9.5)) + '@vue/devtools-api': 6.6.4 + '@vueuse/core': 9.2.0(vue@3.5.12(typescript@4.9.5)) + body-scroll-lock: 4.0.0-beta.0 + shiki: 0.11.1 + vite: 3.2.11(@types/node@20.5.1)(sass@1.80.3)(terser@5.36.0) + vue: 3.5.12(typescript@4.9.5) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - less + - react + - react-dom + - sass + - search-insights + - stylus + - sugarss + - terser + - typescript + vitest@0.25.8(happy-dom@14.12.3)(jsdom@20.0.3)(sass@1.80.3)(terser@5.36.0): dependencies: '@types/chai': 4.3.20 @@ -23553,7 +23956,7 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@18.19.57)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): + vitest@1.6.0(@types/node@20.5.1)(happy-dom@8.9.0)(jsdom@20.0.3)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -23572,11 +23975,11 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.9(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) - vite-node: 1.6.0(@types/node@18.19.57)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite: 5.4.9(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) + vite-node: 1.6.0(@types/node@20.5.1)(sass-embedded@1.80.3)(sass@1.80.3)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 18.19.57 + '@types/node': 20.5.1 happy-dom: 8.9.0 jsdom: 20.0.3 transitivePeerDependencies: