diff --git a/package.json b/package.json
index 4cb3c4d20..29adcbfda 100644
--- a/package.json
+++ b/package.json
@@ -46,10 +46,11 @@
"vue": "^3.2.31",
"vue-i18n": "^9.2.0-beta.30",
"vue-router": "^4.0.14",
- "xlsx": "^0.18.3"
+ "vue-types": "^4.1.1",
+ "xlsx": "^0.18.4"
},
"devDependencies": {
- "@commitlint/cli": "^16.2.1",
+ "@commitlint/cli": "^16.2.3",
"@commitlint/config-conventional": "^16.2.1",
"@types/lodash-es": "^4.17.6",
"@types/node": "^17.0.21",
@@ -62,7 +63,6 @@
"@vue/cli-plugin-typescript": "^5.0.3",
"@vue/cli-plugin-vuex": "^5.0.3",
"@vue/cli-service": "^5.0.3",
- "@vue/compiler-sfc": "^3.2.31",
"@vue/eslint-config-typescript": "^10.0.0",
"babel-plugin-import": "^1.13.3",
"commitizen": "^4.2.4",
@@ -76,10 +76,10 @@
"husky": "^7.0.4",
"less": "^4.1.2",
"less-loader": "10.2.0",
- "lint-staged": "^12.3.5",
+ "lint-staged": "^12.3.6",
"path-browserify": "^1.0.1",
"postcss-html": "^1.3.0",
- "prettier": "^2.5.1",
+ "prettier": "^2.6.0",
"regenerator-runtime": "^0.13.9",
"stylelint": "^14.5.3",
"stylelint-config-html": "^1.0.0",
diff --git a/src/api/demos/select.ts b/src/api/demos/select.ts
new file mode 100644
index 000000000..6e0e7a2ac
--- /dev/null
+++ b/src/api/demos/select.ts
@@ -0,0 +1,18 @@
+import { request } from '@/utils/request';
+
+/**
+ * @description Get sample options value
+ */
+export function optionsListApi(params?: any) {
+ return request<{ list: { id: string; name: string }[] }>(
+ {
+ url: '/select/getDemoOptions',
+ method: 'get',
+ params,
+ },
+ {
+ isMock: true,
+ isGetDataDirectly: true,
+ },
+ );
+}
diff --git a/src/components/basic/excel/src/ExportExcelModal.tsx b/src/components/basic/excel/src/ExportExcelModal.tsx
index 1cc230e5b..a44763486 100644
--- a/src/components/basic/excel/src/ExportExcelModal.tsx
+++ b/src/components/basic/excel/src/ExportExcelModal.tsx
@@ -67,7 +67,6 @@ export const useExportExcelModal = () => {
},
formProps: {
labelWidth: 100,
- layout: 'vertical',
schemas: getSchemas(t),
},
});
diff --git a/src/components/core/dynamic-table/src/hooks/useTableForm.ts b/src/components/core/dynamic-table/src/hooks/useTableForm.ts
index 2eb58e5f5..1fc4c6910 100644
--- a/src/components/core/dynamic-table/src/hooks/useTableForm.ts
+++ b/src/components/core/dynamic-table/src/hooks/useTableForm.ts
@@ -1,5 +1,4 @@
import { unref, computed, watchEffect } from 'vue';
-import { omit } from 'lodash-es';
import type { TableMethods } from './useTableMethods';
import type { TableState } from './useTableState';
import type { ComputedRef, Slots } from 'vue';
@@ -49,7 +48,7 @@ export function useTableForm({ tableState, slots, tableMethods }: UseTableFormCo
});
// 同步外部对props的修改
- watchEffect(() => getQueryFormRef()?.setSchemaFormProps(omit(unref(getFormProps), 'schemas')), {
+ watchEffect(() => getQueryFormRef()?.setSchemaFormProps(unref(getFormProps)), {
flush: 'post',
});
diff --git a/src/components/core/schema-form/index.ts b/src/components/core/schema-form/index.ts
index 0347e0c2f..080e17746 100644
--- a/src/components/core/schema-form/index.ts
+++ b/src/components/core/schema-form/index.ts
@@ -1,13 +1,11 @@
-// export { default as SchemaForm } from './schema-form.vue'
import SchemaForm from './src/schema-form.vue';
import type { DefineComponent } from 'vue';
import type { SchemaFormProps } from './src/schema-form';
-export * from './src/types/form';
-export * from './src/types/formItem';
+export * from './src/types/';
export * from './src/schema-form';
-
export * from './src/hooks/';
+export * from './src/components/';
export { SchemaForm };
diff --git a/src/components/core/schema-form/src/components/ApiSelect.vue b/src/components/core/schema-form/src/components/ApiSelect.vue
new file mode 100644
index 000000000..a09537c64
--- /dev/null
+++ b/src/components/core/schema-form/src/components/ApiSelect.vue
@@ -0,0 +1,141 @@
+
+
+
+
diff --git a/src/components/core/schema-form/src/components/form-action.vue b/src/components/core/schema-form/src/components/form-action.vue
index c054a6129..db01e2820 100644
--- a/src/components/core/schema-form/src/components/form-action.vue
+++ b/src/components/core/schema-form/src/components/form-action.vue
@@ -43,7 +43,7 @@
import { computed, type PropType } from 'vue';
import { Form, Col } from 'ant-design-vue';
import { useFormContext } from '../hooks/useFormContext';
- import type { ColEx } from '../types/index';
+ import type { ColEx } from '../types/component';
import { Button, ButtonProps } from '@/components/basic/button';
import { BasicArrow } from '@/components/basic/basic-arrow';
import { useI18n } from '@/hooks/useI18n';
diff --git a/src/components/core/schema-form/src/components/index.ts b/src/components/core/schema-form/src/components/index.ts
new file mode 100644
index 000000000..9137b5876
--- /dev/null
+++ b/src/components/core/schema-form/src/components/index.ts
@@ -0,0 +1 @@
+export { default as ApiSelect } from './ApiSelect.vue';
diff --git a/src/components/core/schema-form/src/helper.ts b/src/components/core/schema-form/src/helper.ts
index 254e00e41..c92b67205 100644
--- a/src/components/core/schema-form/src/helper.ts
+++ b/src/components/core/schema-form/src/helper.ts
@@ -1,6 +1,6 @@
import dayjs from 'dayjs';
import type { ValidationRule } from 'ant-design-vue/es/form/Form';
-import type { ComponentMapType } from './types';
+import type { ComponentMapType } from './types/component';
import { isNumber } from '@/utils/is';
import { useI18n } from '@/hooks/useI18n';
diff --git a/src/components/core/schema-form/src/hooks/useAdvanced.ts b/src/components/core/schema-form/src/hooks/useAdvanced.ts
index 594b749bf..7d654d41c 100644
--- a/src/components/core/schema-form/src/hooks/useAdvanced.ts
+++ b/src/components/core/schema-form/src/hooks/useAdvanced.ts
@@ -1,6 +1,6 @@
import { computed, unref, watch } from 'vue';
import type { SchemaFormEmitFn } from '../schema-form';
-import type { ColEx } from '../types';
+import type { ColEx } from '../types/component';
import type { SchemaFormType } from './';
import { isBoolean, isFunction, isNumber, isObject } from '@/utils/is';
import { useBreakpoint } from '@/hooks/event/useBreakpoint';
@@ -40,7 +40,7 @@ export const useAdvanced = ({ instance, emit }: UseAdvancedContext) => {
() => {
const { showAdvancedButton } = unref(getFormProps);
if (showAdvancedButton) {
- requestIdleCallback(updateAdvanced);
+ updateAdvanced();
}
},
{ immediate: true },
diff --git a/src/components/core/schema-form/src/schema-form-item.vue b/src/components/core/schema-form/src/schema-form-item.vue
index 6255a9fe2..024cf90fa 100644
--- a/src/components/core/schema-form/src/schema-form-item.vue
+++ b/src/components/core/schema-form/src/schema-form-item.vue
@@ -1,6 +1,10 @@
+
+
+
{
- // const { formModel, schema } = props;
- // return { formModel, schema, field: schema.field };
- // });
const modelValueType = computed(() => {
const { component, componentProps } = schema.value;
@@ -157,7 +156,7 @@
const getDisable = computed(() => {
const { disabled: globDisabled } = unref(formPropsRef);
const { dynamicDisabled } = props.schema;
- const { disabled: itemDisabled = false } = unref(getComponentsProps);
+ const { disabled: itemDisabled = false } = unref(getComponentProps);
let disabled = !!globDisabled || itemDisabled;
if (isBoolean(dynamicDisabled)) {
disabled = dynamicDisabled;
@@ -173,7 +172,7 @@
values = unref(getValues),
) => {
if (isString(component)) {
- return componentMap[component] ?? <>{component}>;
+ return <>{component}>;
} else if (isVNode(component)) {
return component;
} else if (isFunction(component)) {
@@ -197,7 +196,9 @@
*/
const getComponent = computed(() => {
const component = props.schema.component;
- return vnodeFactory(component);
+ return isString(component)
+ ? componentMap[component] ?? vnodeFactory(component)
+ : vnodeFactory(component);
});
/**
@@ -205,7 +206,11 @@
*/
const getComponentSlots = computed>(() => {
const componentSlots = props.schema.componentSlots ?? {};
- return vnodeFactory(componentSlots);
+ return isString(componentSlots) || isVNode(componentSlots)
+ ? {
+ default: (...rest: any) => vnodeFactory(componentSlots, rest),
+ }
+ : vnodeFactory(componentSlots);
});
/**
@@ -213,16 +218,24 @@
*/
const getComponentProps = computed(() => {
const { schema } = props;
- const { componentProps = {}, component, label = '' } = schema;
+ let { componentProps = {}, component, label = '' } = schema;
- const _componentProps = isFunction(componentProps)
- ? componentProps(unref(getValues))
- : componentProps;
+ if (isFunction(componentProps)) {
+ componentProps = componentProps(unref(getValues)) ?? {};
+ }
if (component !== 'RangePicker' && isString(component)) {
- _componentProps.placeholder ??= createPlaceholderMessage(component, label);
+ componentProps.placeholder ??= createPlaceholderMessage(component, label);
+ }
+ if (schema.component === 'Divider') {
+ componentProps = Object.assign({ type: 'horizontal' }, componentProps, {
+ orientation: 'left',
+ plain: true,
+ });
}
- return _componentProps;
+ schema.field === 'field35' && console.log('componentProps', componentProps);
+
+ return componentProps as Recordable;
});
/**
@@ -247,7 +260,7 @@
{label} {subLabel}
) : (
- label
+ vnodeFactory(label)
);
const getHelpMessage = isFunction(helpMessage) ? helpMessage(unref(getValues)) : helpMessage;
if (!getHelpMessage || (Array.isArray(getHelpMessage) && getHelpMessage.length === 0)) {
@@ -261,15 +274,6 @@
);
});
- const getComponentsProps = computed(() => {
- const { schema } = props;
- let { componentProps = {} } = schema;
- if (isFunction(componentProps)) {
- componentProps = componentProps(unref(getValues)) ?? {};
- }
- return componentProps as Recordable;
- });
-
function setComponentRuleType(
rule: ValidationRule,
component: ComponentMapType,
@@ -358,7 +362,7 @@
if (component.includes('Input') || component.includes('Textarea')) {
rule.whitespace = true;
}
- const valueFormat = unref(getComponentsProps)?.valueFormat;
+ const valueFormat = unref(getComponentProps)?.valueFormat;
setComponentRuleType(rule, component, valueFormat);
}
}
@@ -377,14 +381,20 @@
onMounted(async () => {
if (getComponentProps.value?.request) {
const compProps = getComponentProps.value;
- const compName = schema.value.component;
+ const { componentProps, component } = schema.value;
+
schema.value.loading = true;
+ schema.value.field === 'field35' && console.log('compProps', compProps, formPropsRef.value);
+
try {
- if (['Select', 'RadioGroup', 'CheckBoxGroup'].some((n) => n === compName)) {
- compProps.options = await getComponentProps.value?.request();
- console.log('compProps.options', schema.value);
- } else if (['TreeSelect', 'Tree'].some((n) => n === compName)) {
- compProps.treeData = await getComponentProps.value?.request();
+ const result = await getComponentProps.value?.request(unref(getValues));
+ if (['Select', 'RadioGroup', 'CheckBoxGroup'].some((n) => n === component)) {
+ compProps.options = result;
+ } else if (['TreeSelect', 'Tree'].some((n) => n === component)) {
+ compProps.treeData = result;
+ }
+ if (componentProps) {
+ componentProps.requestResult = result;
}
} finally {
schema.value.loading = false;
diff --git a/src/components/core/schema-form/src/schema-form.ts b/src/components/core/schema-form/src/schema-form.ts
index d17079e56..d5628e7c8 100644
--- a/src/components/core/schema-form/src/schema-form.ts
+++ b/src/components/core/schema-form/src/schema-form.ts
@@ -1,6 +1,6 @@
import { formProps, type FormProps } from 'ant-design-vue/es/form';
import SchemaForm from './schema-form.vue';
-import { ColEx } from './types';
+import { ColEx } from './types/component';
import type { ExtractPropTypes, ComponentInternalInstance, CSSProperties } from 'vue';
import type { FieldMapToTime, FormSchema, RowProps } from './types/form';
import type { ButtonProps } from '@/components/basic/button';
diff --git a/src/components/core/schema-form/src/schema-form.vue b/src/components/core/schema-form/src/schema-form.vue
index 2fc39f51d..5d4005a51 100644
--- a/src/components/core/schema-form/src/schema-form.vue
+++ b/src/components/core/schema-form/src/schema-form.vue
@@ -34,7 +34,7 @@
diff --git a/src/views/demos/form/use-form/index.vue b/src/views/demos/form/use-form/index.vue
index 39fc10cb3..7217393b1 100644
--- a/src/views/demos/form/use-form/index.vue
+++ b/src/views/demos/form/use-form/index.vue
@@ -1,6 +1,6 @@
-
+
6.1.1", "@commitlint/load@^16.2.1":
+"@commitlint/load@>6.1.1":
version "16.2.1"
resolved "https://registry.npmmirror.com/@commitlint/load/-/load-16.2.1.tgz#301bda1bff66b3e40a85819f854eda72538d8e24"
integrity sha512-oSpz0jTyVI/A1AIImxJINTLDOMB8YF7lWGm+Jg5wVWM0r7ucpuhyViVvpSRTgvL0z09oIxlctyFGWUQQpI42uw==
@@ -1045,6 +1045,23 @@
resolve-from "^5.0.0"
typescript "^4.4.3"
+"@commitlint/load@^16.2.3":
+ version "16.2.3"
+ resolved "https://registry.npmmirror.com/@commitlint/load/-/load-16.2.3.tgz#7b2e85af25a6f736f080ba08e7165738cedf8c8f"
+ integrity sha512-Hb4OUlMnBUK6UxJEZ/VJ5k0LocIS7PtEMbRXEAA7eSpOgORIFexC4K/RaRpVd5UTtu3M0ST3ddPPijF9rdW6nw==
+ dependencies:
+ "@commitlint/config-validator" "^16.2.1"
+ "@commitlint/execute-rule" "^16.2.1"
+ "@commitlint/resolve-extends" "^16.2.1"
+ "@commitlint/types" "^16.2.1"
+ "@types/node" ">=12"
+ chalk "^4.0.0"
+ cosmiconfig "^7.0.0"
+ cosmiconfig-typescript-loader "^1.0.0"
+ lodash "^4.17.19"
+ resolve-from "^5.0.0"
+ typescript "^4.4.3"
+
"@commitlint/message@^16.2.1":
version "16.2.1"
resolved "https://registry.npmmirror.com/@commitlint/message/-/message-16.2.1.tgz#bc6a0fa446a746ac2ca78cf372e4cec48daf620d"
@@ -1970,7 +1987,7 @@
"@vue/compiler-core" "3.2.31"
"@vue/shared" "3.2.31"
-"@vue/compiler-sfc@3.2.31", "@vue/compiler-sfc@^3.2.31":
+"@vue/compiler-sfc@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz#d02b29c3fe34d599a52c5ae1c6937b4d69f11c2f"
integrity sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==
@@ -5689,6 +5706,11 @@ is-plain-object@3.0.1:
resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b"
integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==
+is-plain-object@5.0.0, is-plain-object@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
+ integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
+
is-plain-object@^2.0.3, is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
@@ -5696,11 +5718,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
-is-plain-object@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
- integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
-
is-regex@^1.0.4, is-regex@^1.1.4:
version "1.1.4"
resolved "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
@@ -6031,10 +6048,10 @@ lines-and-columns@^1.1.6:
resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-lint-staged@^12.3.5:
- version "12.3.5"
- resolved "https://registry.npmmirror.com/lint-staged/-/lint-staged-12.3.5.tgz#8048ce048c3cac12f57200a06344a54dc91c8fa9"
- integrity sha512-oOH36RUs1It7b9U/C7Nl/a0sLfoIBcMB8ramiB3nuJ6brBqzsWiUAFSR5DQ3yyP/OR7XKMpijtgKl2DV1lQ3lA==
+lint-staged@^12.3.6:
+ version "12.3.6"
+ resolved "https://registry.npmmirror.com/lint-staged/-/lint-staged-12.3.6.tgz#7b999ebe041c07f241537a17c49969027b4d26f0"
+ integrity sha512-tVNyl/HsAnplKh4oaoRNzyZLm0PE/6VaBUXvd/gA9zhYCC/+ivZwiwpoT6jOxcLzuIOjP19wW+mfOi7/Bw4c1A==
dependencies:
cli-truncate "^3.1.0"
colorette "^2.0.16"
@@ -6046,6 +6063,7 @@ lint-staged@^12.3.5:
micromatch "^4.0.4"
normalize-path "^3.0.0"
object-inspect "^1.12.0"
+ pidtree "^0.5.0"
string-argv "^0.3.1"
supports-color "^9.2.1"
yaml "^1.10.2"
@@ -7115,6 +7133,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3:
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+pidtree@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.npmmirror.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1"
+ integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==
+
pify@^2.3.0:
version "2.3.0"
resolved "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -7516,11 +7539,16 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
-"prettier@^1.18.2 || ^2.0.0", prettier@^2.5.1:
+"prettier@^1.18.2 || ^2.0.0":
version "2.5.1"
resolved "https://registry.npmmirror.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
+prettier@^2.6.0:
+ version "2.6.0"
+ resolved "https://registry.npmmirror.com/prettier/-/prettier-2.6.0.tgz#12f8f504c4d8ddb76475f441337542fa799207d4"
+ integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==
+
pretty-error@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6"
@@ -9322,6 +9350,13 @@ vue-types@^3.0.0:
dependencies:
is-plain-object "3.0.1"
+vue-types@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmmirror.com/vue-types/-/vue-types-4.1.1.tgz#7d7a4e4a01249a51b6da3faa301248c2ea5f5b97"
+ integrity sha512-Jq2GZ/w6rExJbLA/h7nHBFLciu+YNekgox0DB64wN1snZ4IIJMq+qnqp1/vE4fc7vEjZcP5KGhLzkkSjIHLRzw==
+ dependencies:
+ is-plain-object "5.0.0"
+
vue@^3.2.31:
version "3.2.31"
resolved "https://registry.npmmirror.com/vue/-/vue-3.2.31.tgz#e0c49924335e9f188352816788a4cca10f817ce6"
@@ -9634,10 +9669,10 @@ ws@~8.2.3:
resolved "https://registry.npmmirror.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba"
integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==
-xlsx@^0.18.3:
- version "0.18.3"
- resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.3.tgz#03a95a1082b0ac436afa0fcbc50adb98ee4b288e"
- integrity sha512-iNBdKSJO11bI59C/dJjYWfR2gglRUrbWtDK9YoKKvu+RA1dinyWU3XXc0BaZUoSYFkxvPrO/9dwBGu6mhVNVGQ==
+xlsx@^0.18.4:
+ version "0.18.4"
+ resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.4.tgz#eae7df428d6eb6a57cf595ee1fff6df95cc0a43d"
+ integrity sha512-u2plLVR/Ju2NxByPcWuxW3eOHEE/EH8w0vDyvHx8pFa8qO3fpq+l/57msr/Eq4cY5LErFOFD4sp4jIyPd6nFzQ==
dependencies:
adler-32 "~1.3.0"
cfb "~1.2.1"