diff --git a/packages/yunti-ui-lowcode-materials/cli/files.mjs b/packages/yunti-ui-lowcode-materials/cli/files.mjs new file mode 100644 index 0000000..90ac397 --- /dev/null +++ b/packages/yunti-ui-lowcode-materials/cli/files.mjs @@ -0,0 +1,135 @@ +import fse from 'fs-extra' +import path from 'path' +import { formatComponentSchema } from './utils.mjs' + +export const mkfileView = ({ rootDir, lowcodeDir }) => { + + const filePath = path.resolve(rootDir,`${lowcodeDir}/view.tsx`) + + if(fse.existsSync(filePath)) return + + const fileContent = `export * from '@yuntijs/ui';` + + fse.outputFileSync(filePath, fileContent); + +} + +export const mkfileUtils= ({ rootDir, lowcodeDir }) => { + + const filePath = path.resolve(rootDir,`${lowcodeDir}/utils.ts`) + + if(fse.existsSync(filePath)) return + + const fileContent = `import { IPublicTypeFieldConfig } from '@alilc/lowcode-types'; + +// 获取组件优先级 +export const getPriority = (componentName: string) => { + const priorities = {}; + const SortArr = ['Tree']; + for (const [i, component] of SortArr.entries()) { + priorities[component] = SortArr.length - i; + } + return priorities[componentName]; +}; + +export const COMMON_CONFIGURE_PROPS: IPublicTypeFieldConfig[] = [ + { + title: '通用配置', + display: 'block', + type: 'group', + items: [ + { + name: 'id', + title: { label: '唯一 id', tip: 'id' }, + setter: [{ componentName: 'StringSetter' }], + }, + { + name: 'className', + title: { label: '类名', tip: '自定义样式类名' }, + setter: [{ componentName: 'StringSetter' }], + }, + ], + }, +];` + + fse.outputFileSync(filePath, fileContent); + +} + +export const mkfileMeta = ({ rootDir, lowcodeDir, componentsMetaArr = [] }) => { + + const filePath = path.resolve(rootDir,`${lowcodeDir}/meta.ts`) + + const fileContent = `import pkgJson from '../package.json'; +${ +componentsMetaArr.map(item => `import { ${item.name} } from '${item.path}'; +`).join('') +} +const components = [${componentsMetaArr.map(item => item.name).join(', ')}].map(c => { + if (c.npm) { + c.npm.version = pkgJson.version; + } + if (!c.group) { + c.group = 'YuntiUI 组件'; + } + return c; +}); + +// 注意不要使用 default 导出 +export { components }; +` + + fse.outputFileSync(filePath, fileContent); + +} + +export const mkfilesComponent = ({ rootDir, lowcodeDir, metaDevSubfix, metaFormat, component, packageInfo, componentNameFolder }) => { + + const getComponentFilePath = (name) => `${lowcodeDir}/${componentNameFolder}/${name}${metaDevSubfix}.${metaFormat || 'ts'}` + const filePath = path.resolve(rootDir, getComponentFilePath('meta')) + + if(fse.existsSync(filePath)) return + + const { componentName } = component || {} + + const schema = formatComponentSchema(component); + if (schema.title === packageInfo.name) { + schema.title = schema.componentName; + } + const { snippets } = schema; + const componentDescription = schema; + delete componentDescription.snippets; + + const fileContent = ` +import { IPublicTypeComponentMetadata } from '@alilc/lowcode-types'; +import { COMMON_CONFIGURE_PROPS } from '../utils'; +import { ${componentName}Snippets } from './snippets'; + +const ${componentName}MetaInfo: IPublicTypeComponentMetadata = ${JSON.stringify( + componentDescription, + null, + 2, + ).replace('"props": [\n', '"props": [\n ...COMMON_CONFIGURE_PROPS,\n') + }; + +export const ${componentName}Meta = { + ...${componentName}MetaInfo, + snippets: ${componentName}Snippets +} + +` + + fse.outputFileSync(filePath, fileContent); + + + const snippetsFilePath = path.resolve(rootDir, getComponentFilePath('snippets')) + const snippetsFileContent = ` + import { IPublicTypeSnippet } from '@alilc/lowcode-types'; + + export const ${componentName}Snippets: IPublicTypeSnippet[] = ${JSON.stringify(snippets, null, 2)}; + +` + fse.outputFileSync(snippetsFilePath, snippetsFileContent); + +} + diff --git a/packages/yunti-ui-lowcode-materials/cli/index.mjs b/packages/yunti-ui-lowcode-materials/cli/index.mjs new file mode 100644 index 0000000..7f03cca --- /dev/null +++ b/packages/yunti-ui-lowcode-materials/cli/index.mjs @@ -0,0 +1,79 @@ + +import { getEntry, formatComponentSchema, resolvePkgJson } from './utils.mjs' +import parser from '@alilc/lowcode-material-parser' +import { mkfileMeta, mkfileUtils, mkfileView, mkfilesComponent } from './files.mjs' + +const init = async ({ + entryPath = "src/index.tsx", + rootDir = '', + devAlias = undefined, + components, + metaFormat = undefined, + lowcodeDir = 'lowcode', + skipComponents, +}) => { + const entry = getEntry(rootDir, entryPath); + let result = await parser.default({ accesser: 'local', entry, npmClient: 'npm' }); + + const packageInfo = await resolvePkgJson() + + if (!result) { + // If the result is not parsed, the result is generated by default + result = [ + formatComponentSchema({ + componentName: PARSED_NPM_NAME.uniqueName, + npm: { + package: packageInfo.name, + version: packageInfo.version || "{{version}}", + exportName: 'default', + main: 'lib/index.js', + destructuring: false, + subName: '', + }, + }), + ]; + } else if (result.length === 1 && result[0].componentName === 'default') { + result[0].componentName = PARSED_NPM_NAME.uniqueName; + if (result[0].title === 'default') { + result[0].title = PARSED_NPM_NAME.uniqueName; + } + } + + const componentsMetaArr = []; + + const metaDevSubfix = devAlias ? `.${devAlias}` : ''; + const filteredComponents = result.filter((item) => { + return !skipComponents.includes(item.componentName) && (components ? components.includes(item.componentName) : true) + }); + + filteredComponents.forEach((component) => { + + const componentNameFolder = component.componentName; + + componentsMetaArr.push({ + path: `./${componentNameFolder}/meta${metaDevSubfix}`, + name: `${component.componentName}Meta`, + }) + + mkfilesComponent({ + rootDir, + lowcodeDir, + metaDevSubfix, + metaFormat, + component, + packageInfo, + componentNameFolder + }) + + }); + + mkfileView({rootDir, lowcodeDir}) + mkfileUtils({rootDir, lowcodeDir}) + mkfileMeta({rootDir, lowcodeDir, componentsMetaArr}) + +} + +init({ + components: undefined, + skipComponents: ['TreeNode', 'DirectoryTree', 'Item', 'MonacoDiffEditor', 'BaseMonacoEditor'], +}) diff --git a/packages/yunti-ui-lowcode-materials/cli/parseProps.mjs b/packages/yunti-ui-lowcode-materials/cli/parseProps.mjs new file mode 100644 index 0000000..f4600c4 --- /dev/null +++ b/packages/yunti-ui-lowcode-materials/cli/parseProps.mjs @@ -0,0 +1,263 @@ +const propConfigToFieldConfig = (propConfig) => { + const { name, description } = propConfig; + const title = { + label: { + type: 'i18n', + 'en-US': name, + 'zh-CN': (description && description.slice(0, 10)) || name, + }, + tip: description ? `${name} | ${description}` : undefined, + }; + const setter = propConfig.setter ? propConfig.setter : propTypeToSetter(propConfig.propType); + delete propConfig.propType; + return { + title, + ...propConfig, + // TODO 这边直接用propConfig,将setter丢在propconfig里,需要确认是否在PropConfig扩展还是换实现 + setter, + }; +} + +const propTypeToSetter = (propType) => { + let typeName; + let isRequired = false; + if (typeof propType === 'string') { + typeName = propType; + } else if (typeof propType === 'object') { + typeName = propType.type; + isRequired = propType.isRequired; + } else { + typeName = 'string'; + } + // TODO: use mixinSetter wrapper + switch (typeName) { + case 'string': + return { + componentName: 'StringSetter', + isRequired, + initialValue: '', + }; + case 'number': + return { + componentName: 'NumberSetter', + isRequired, + initialValue: 0, + }; + case 'bool': + return { + componentName: 'BoolSetter', + isRequired, + initialValue: false, + }; + case 'oneOf': + const dataSource = (propType.value || []).map((value, index) => { + const t = typeof value; + return { + label: + t === 'string' || t === 'number' || t === 'boolean' ? String(value) : `value ${index}`, + value, + }; + }); + const componentName = dataSource.length >= 4 ? 'SelectSetter' : 'RadioGroupSetter'; + return { + componentName, + props: { dataSource, options: dataSource }, + isRequired, + initialValue: dataSource[0] ? dataSource[0].value : null, + }; + + case 'element': + case 'node': // TODO: use Mixin + return { + // slotSetter + componentName: 'SlotSetter', + props: { + mode: typeName, + }, + isRequired, + initialValue: { + type: 'JSSlot', + value: [], + }, + }; + case 'shape': + case 'exact': + const items = (propType.value || []).map((item) => propConfigToFieldConfig(item)); + return { + componentName: 'ObjectSetter', + props: { + config: { + items, + extraSetter: typeName === 'shape' ? propTypeToSetter('any') : null, + }, + }, + isRequired, + initialValue: (field) => { + const data = {}; + items.forEach((item) => { + let initial = item.defaultValue; + if (initial == null && item.setter && typeof item.setter === 'object') { + initial = item.setter.initialValue; + } + data[item.name] = initial + ? typeof initial === 'function' + ? initial(field) + : initial + : null; + }); + return data; + }, + }; + case 'object': + case 'objectOf': + return { + componentName: 'ObjectSetter', + props: { + config: { + extraSetter: propTypeToSetter(typeName === 'objectOf' ? propType.value : 'any'), + }, + }, + isRequired, + initialValue: {}, + }; + case 'array': + case 'arrayOf': + return { + componentName: 'ArraySetter', + props: { + itemSetter: propTypeToSetter(typeName === 'arrayOf' ? propType.value : 'any'), + }, + isRequired, + initialValue: [], + }; + case 'func': + return { + componentName: 'FunctionSetter', + isRequired, + }; + case 'color': + return { + componentName: 'ColorSetter', + isRequired, + }; + case 'oneOfType': + return { + componentName: 'MixedSetter', + props: { + // TODO: + setters: (propType.value || []).map((item) => propTypeToSetter(item)), + }, + isRequired, + }; + default: + // do nothing + } + return { + componentName: 'MixedSetter', + isRequired, + props: {}, + }; +} + +const EVENT_RE = /^on|after|before[A-Z][\w]*$/; + +const parseProps = (metadata) => { + const { configure = {} } = metadata; + // TODO types后续补充 + let extendsProps = null; + if (configure.props) { + if (Array.isArray(configure.props)) { + return metadata; + } + const { isExtends, override = [] } = configure.props; + // 不开启继承时,直接返回configure配置 + if (!isExtends) { + return { + ...metadata, + configure: { + ...configure, + props: [...override], + }, + }; + } + + extendsProps = {}; + // 开启继承后,缓存重写内容的配置 + override.forEach((prop) => { + extendsProps[prop.name] = prop; + }); + } + + if (!metadata.props) { + return { + ...metadata, + configure: { + ...configure, + props: [], + }, + }; + } + const { component = {}, supports = { loop: true, condition: true } } = configure; + const supportedEvents = supports.events ? null : []; + const props = []; + + metadata.props.forEach((prop) => { + const { name, propType, description } = prop; + if ( + name === 'children' && + (component.isContainer || propType === 'node' || propType === 'element' || propType === 'any') + ) { + if (component.isContainer !== false) { + component.isContainer = true; + props.push(propConfigToFieldConfig(prop)); + return; + } + } + + if (EVENT_RE.test(name) && (propType === 'func' || propType === 'any')) { + if (supportedEvents) { + supportedEvents.push({ + name, + description, + }); + supports.events = supportedEvents; + } + return; + } + + if (name === 'className' && (propType === 'string' || propType === 'any')) { + if (supports.className == null) { + supports.className = true; + } + return; + } + + if (name === 'style' && (propType === 'object' || propType === 'any')) { + if (supports.style == null) { + supports.style = true; + } + return; + } + + // 存在覆盖配置时 + if (extendsProps) { + if (name in extendsProps) { + prop = extendsProps[name]; + } + } + + props.push(propConfigToFieldConfig(prop)); + }); + + return { + ...metadata, + configure: { + ...configure, + props, + supports, + component, + }, + }; +}; + +export default parseProps diff --git a/packages/yunti-ui-lowcode-materials/cli/utils.mjs b/packages/yunti-ui-lowcode-materials/cli/utils.mjs new file mode 100644 index 0000000..4d7f8b4 --- /dev/null +++ b/packages/yunti-ui-lowcode-materials/cli/utils.mjs @@ -0,0 +1,91 @@ +import fse from 'fs-extra' +import path from 'path' +import parseProps from './parseProps.mjs' + +export const formatComponentSchema = (schema) => { + let { props } = schema; + const defaultProps = { + __component_name: schema.componentName, + }; + let noStyleProp = true; + if (props && Array.isArray(props)) { + props.forEach((prop) => { + if (prop.defaultValue) { + defaultProps[prop.name] = prop.defaultValue; + } + if (noStyleProp && ['style'].includes(prop.name)) { + noStyleProp = false; + } + }); + if (noStyleProp) { + props.push({ + name: 'style', + propType: 'object', + }); + } + } else { + props = [ + { + name: 'style', + propType: 'object', + }, + ]; + } + schema.props = props; + const parsedSchema = parseProps(schema); + delete parsedSchema.props; + parsedSchema.snippets = [ + { + title: schema.componentName, + screenshot: schema.screenshot, + schema: { + componentName: schema.componentName, + props: defaultProps, + }, + }, + ]; + parsedSchema.npm.version = '{{version}}' + delete parsedSchema.npm.main + parsedSchema.category = '其他' + return parsedSchema; +} + +export const camel2KebabComponentName = (camel) => { + return camel + .replace(/[A-Z]/g, (item) => { + return `-${item.toLowerCase()}`; + }) + .replace(/^\-/, ''); +} + +const defaultEntryPaths = [ + `./src/index.tsx`, +]; + +export const getEntry = (rootDir, entryPath) => { + if (entryPath && fse.existsSync(path.resolve(rootDir, entryPath))) { + return path.resolve(rootDir, entryPath).replace(/\\/g, '\\\\'); + } + for (let i = 0; i < defaultEntryPaths.length; i++) { + const p = path.resolve(rootDir, defaultEntryPaths[i]); + if (fse.existsSync(p)) { + return p.replace(/\\/g, '\\\\'); + // return p; + } + } + return ''; +} + +export const resolvePkgJson = async(pkgJsonPath = 'package.json') => { + const content = await loadFile(pkgJsonPath); + const json = JSON.parse(content); + return json; +} + +export const loadFile = (filePath) => { + const content = fse.readFileSync(filePath); + if (typeof content === 'string') { + return content; + } + return content.toString(); +} \ No newline at end of file diff --git a/packages/yunti-ui-lowcode-materials/package.json b/packages/yunti-ui-lowcode-materials/package.json index 602301e..c09d44f 100644 --- a/packages/yunti-ui-lowcode-materials/package.json +++ b/packages/yunti-ui-lowcode-materials/package.json @@ -18,6 +18,7 @@ "build": "father build", "build:deps": "father prebundle", "dev": "cross-env NODE_ENV=development father dev", + "init": "node cli/index.mjs", "prepublishOnly": "father doctor && npm run build" }, "dependencies": { @@ -25,6 +26,12 @@ "@babel/runtime": "^7.0.0", "@yuntijs/ui": "1.0.0-beta.8" }, + "devDependencies": { + "@alilc/lowcode-material-parser": "^1.0.3", + "@types/react": "^17", + "@types/react-dom": "^17", + "fs-extra": "^11.2.0" + }, "peerDependencies": { "lodash": "^4.17.21", "moment": "latest", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f2131d..0feb125 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -200,6 +200,19 @@ importers: react-dom: specifier: 16.x || 17.x version: 17.0.2(react@17.0.2) + devDependencies: + '@alilc/lowcode-material-parser': + specifier: ^1.0.3 + version: 1.0.3 + '@types/react': + specifier: ^17 + version: 17.0.69 + '@types/react-dom': + specifier: ^17 + version: 17.0.22 + fs-extra: + specifier: ^11.2.0 + version: 11.2.0 packages: @@ -221,7 +234,7 @@ packages: aggregate-error: 3.1.0 debug: 4.3.4 dir-glob: 3.0.1 - fs-extra: 11.1.1 + fs-extra: 11.2.0 globby: 11.1.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 @@ -519,6 +532,30 @@ packages: - supports-color dev: true + /@alilc/lowcode-material-parser@1.0.3: + resolution: {integrity: sha512-m+YaJVdWV7U9mUwsDJdE1tWT/y+dSXnFbMCt4SosaSDCxhN2OF+v2kK6sK2eVJWDq9P+w4U4oj9WPbPqWDT/aw==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 6.12.6 + ast-types: 0.13.4 + cross-spawn-promise: 0.10.2 + debug: 4.3.4 + find-config: 1.0.0 + fs-extra: 8.1.0 + lodash: 4.17.21 + parse-prop-types: 0.3.0(prop-types@15.8.1) + prop-types: 15.8.1 + react-docgen: 5.3.0 + react-docgen-typescript: 1.22.0(typescript@3.9.4) + safe-eval: 0.4.1 + short-uuid: 3.1.1 + ts-polyfill: 3.8.2 + typescript: 3.9.4 + vm2: 3.9.19 + transitivePeerDependencies: + - supports-color + dev: true + /@alilc/lowcode-plugin-base-monaco-editor@1.1.2(monaco-editor@0.44.0): resolution: {integrity: sha512-ZEq08Zj4gLQgFzoU3T6xQITv6nyF/KlUJ1cVZ4RzdgYho4iQqUyoOUY0g+YIGc8Lre9yIVwnfLv2gSf2K61TCw==} dependencies: @@ -4026,7 +4063,7 @@ packages: immer: 10.0.3 leva: 0.9.35(@types/react-dom@17.0.22)(@types/react@17.0.69)(react-dom@17.0.2)(react@17.0.2) lodash-es: 4.17.21 - lucide-react: 0.357.0(react@17.0.2) + lucide-react: 0.372.0(react@17.0.2) polished: 4.2.2 prism-react-renderer: 2.3.1(react@17.0.2) query-string: 8.1.0 @@ -4193,7 +4230,7 @@ packages: dev: true /@octokit/auth-token@2.5.0: - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + resolution: {integrity: sha1-J8N+omwgXyhENAJHf/0mExHyHjY=} dependencies: '@octokit/types': 6.41.0 dev: true @@ -4251,7 +4288,7 @@ packages: dev: true /@octokit/endpoint@6.0.12: - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + resolution: {integrity: sha1-O01HpLDnmxAn+4111CIZKLLQVlg=} dependencies: '@octokit/types': 6.41.0 is-plain-object: 5.0.0 @@ -4276,7 +4313,7 @@ packages: dev: true /@octokit/graphql@4.8.0: - resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + resolution: {integrity: sha1-Zk2bEcDhIRLL944Q9JoFlZqiLMM=} dependencies: '@octokit/request': 5.6.3 '@octokit/types': 6.41.0 @@ -4339,7 +4376,7 @@ packages: dev: true /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.4): - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + resolution: {integrity: sha1-XlDtcIOmE4FrHkooruxft/FGLoU=} peerDependencies: '@octokit/core': '>=3' dependencies: @@ -4419,7 +4456,7 @@ packages: dev: true /@octokit/request-error@2.1.0: - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + resolution: {integrity: sha1-nhUDV4Mb/HiNE6T9SxkT1gx01nc=} dependencies: '@octokit/types': 6.41.0 deprecation: 2.3.1 @@ -5341,7 +5378,7 @@ packages: dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 - fs-extra: 11.1.1 + fs-extra: 11.2.0 lodash: 4.17.21 semantic-release: 21.1.2(typescript@5.2.2) dev: true @@ -5425,7 +5462,7 @@ packages: aggregate-error: 3.1.0 debug: 4.3.4 dir-glob: 3.0.1 - fs-extra: 11.1.1 + fs-extra: 11.2.0 globby: 11.1.0 http-proxy-agent: 7.0.0 https-proxy-agent: 7.0.2 @@ -5476,7 +5513,7 @@ packages: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 execa: 8.0.1 - fs-extra: 11.1.1 + fs-extra: 11.2.0 lodash-es: 4.17.21 nerf-dart: 1.0.0 normalize-url: 8.0.0 @@ -5498,7 +5535,7 @@ packages: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 execa: 5.1.1 - fs-extra: 11.1.1 + fs-extra: 11.2.0 lodash: 4.17.21 nerf-dart: 1.0.0 normalize-url: 6.1.0 @@ -5785,6 +5822,7 @@ packages: engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -5794,6 +5832,7 @@ packages: engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -5803,6 +5842,7 @@ packages: engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -5812,6 +5852,7 @@ packages: engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -5866,7 +5907,7 @@ packages: dev: true /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + resolution: {integrity: sha1-9UShSNOrNYAcH2M6dEH9h8LkhL8=} engines: {node: '>= 10'} dev: true @@ -6171,7 +6212,7 @@ packages: dependencies: '@types/prop-types': 15.7.9 '@types/scheduler': 0.16.5 - csstype: 3.1.2 + csstype: 3.1.3 /@types/react@18.2.33: resolution: {integrity: sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==} @@ -6781,6 +6822,7 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -6790,6 +6832,7 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -6799,6 +6842,7 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -6808,6 +6852,7 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -7118,7 +7163,7 @@ packages: dev: true /@ungap/promise-all-settled@1.1.2: - resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} + resolution: {integrity: sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=} dev: true /@ungap/structured-clone@1.2.0: @@ -7336,11 +7381,11 @@ packages: dev: true /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + resolution: {integrity: sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=} dev: true /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + resolution: {integrity: sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=} dev: true /@yunti/lowcode-code-generator@2.4.0(@babel/core@7.23.2): @@ -7522,7 +7567,7 @@ packages: antd-style: 3.6.1(@types/react@17.0.69)(antd@5.12.6)(react-dom@17.0.2)(react@17.0.2) leva: 0.9.35(@types/react-dom@17.0.22)(@types/react@17.0.69)(react-dom@17.0.2)(react@17.0.2) lodash-es: 4.17.21 - lucide-react: 0.357.0(react@17.0.2) + lucide-react: 0.372.0(react@17.0.2) query-string: 8.1.0 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) @@ -7569,6 +7614,11 @@ packages: acorn: 8.10.0 dev: true + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} @@ -7592,7 +7642,7 @@ packages: dev: true /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + resolution: {integrity: sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=} engines: {node: '>= 6.0.0'} dependencies: debug: 4.3.4 @@ -7720,7 +7770,7 @@ packages: dev: true /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + resolution: {integrity: sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=} engines: {node: '>=6'} dev: true @@ -8206,6 +8256,13 @@ packages: resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=} engines: {node: '>=0.10.0'} + /ast-types@0.13.4: + resolution: {integrity: sha1-7g13s0MmOWXsw/ti2hbnIisrZ4I=} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.2 + dev: true + /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -8664,7 +8721,7 @@ packages: dev: true /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + resolution: {integrity: sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=} dev: true /browserify-aes@1.2.0: @@ -8756,7 +8813,7 @@ packages: dev: true /buffer-from@0.1.2: - resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==} + resolution: {integrity: sha1-FfS5vO8BIETfMRQsFDM8r24CYNA=} dev: false /buffer-from@1.1.2: @@ -9042,7 +9099,7 @@ packages: dev: true /chokidar@3.5.1: - resolution: {integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==} + resolution: {integrity: sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -9080,7 +9137,7 @@ packages: dev: false /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + resolution: {integrity: sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=} engines: {node: '>=6.0'} dev: true @@ -9115,7 +9172,7 @@ packages: dev: true /classnames@2.2.6: - resolution: {integrity: sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==} + resolution: {integrity: sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4=} dev: true /classnames@2.3.2: @@ -9776,8 +9833,15 @@ packages: cross-spawn: 7.0.3 dev: true + /cross-spawn-promise@0.10.2: + resolution: {integrity: sha512-74PXJf6DYaab2klRS+D+9qxKJL1Weo3/ao9OPoH6NFzxtINSa/HE2mcyAPu1fpEmRTPD4Gdmpg3xEXQSgI8lpg==} + engines: {node: '>=4'} + dependencies: + cross-spawn: 5.1.0 + dev: true + /cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + resolution: {integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=} dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 @@ -9785,7 +9849,7 @@ packages: dev: true /cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + resolution: {integrity: sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=} engines: {node: '>=4.8'} dependencies: nice-try: 1.0.5 @@ -9849,7 +9913,7 @@ packages: dev: true /css-color-keywords@1.0.0: - resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + resolution: {integrity: sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=} engines: {node: '>=4'} dev: true @@ -10002,6 +10066,7 @@ packages: /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: true /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -10054,7 +10119,7 @@ packages: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + resolution: {integrity: sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -10087,7 +10152,7 @@ packages: dev: true /debug@4.3.1(supports-color@8.1.1): - resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} + resolution: {integrity: sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -10124,7 +10189,7 @@ packages: dev: true /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + resolution: {integrity: sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=} engines: {node: '>=10'} dev: true @@ -10308,7 +10373,7 @@ packages: dequal: 2.0.3 /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + resolution: {integrity: sha1-ftatdthZ0DB4fsNYVfWx2vMdhSs=} engines: {node: '>=0.3.1'} dev: true @@ -10393,7 +10458,7 @@ packages: dev: true /dom7@3.0.0: - resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==} + resolution: {integrity: sha1-uGHOXWemvs16qjrQKUL/FLEkAzE=} dependencies: ssr-window: 3.0.0 dev: true @@ -10873,7 +10938,7 @@ packages: dev: true /errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + resolution: {integrity: sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=} hasBin: true requiresBuild: true dependencies: @@ -11902,6 +11967,13 @@ packages: path-exists: 3.0.0 dev: true + /find-config@1.0.0: + resolution: {integrity: sha512-Z+suHH+7LSE40WfUeZPIxSxypCWvrzdVc60xAjUShZeT5eMWM0/FQUduq3HjluyfAHWvC/aOBkT1pTZktyF/jg==} + engines: {node: '>= 0.12'} + dependencies: + user-home: 2.0.0 + dev: true + /find-file-up@0.1.3: resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==} engines: {node: '>=0.10.0'} @@ -11992,7 +12064,7 @@ packages: dev: true /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + resolution: {integrity: sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=} hasBin: true dev: true @@ -12154,8 +12226,17 @@ packages: universalify: 2.0.0 dev: true + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + /fs-extra@3.0.1: - resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==} + resolution: {integrity: sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=} dependencies: graceful-fs: 4.2.11 jsonfile: 3.0.1 @@ -12163,7 +12244,7 @@ packages: dev: true /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + resolution: {integrity: sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=} engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 @@ -12172,7 +12253,7 @@ packages: dev: true /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + resolution: {integrity: sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=} engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 @@ -12181,7 +12262,7 @@ packages: dev: true /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + resolution: {integrity: sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=} engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 @@ -12420,7 +12501,7 @@ packages: dev: true /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + resolution: {integrity: sha1-x1KXCHyFG5pXi9IX3VmpL1n+VG4=} dev: true /glob@10.3.10: @@ -12436,7 +12517,7 @@ packages: dev: true /glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + resolution: {integrity: sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -12617,7 +12698,7 @@ packages: dev: true /growl@1.10.5: - resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} + resolution: {integrity: sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=} engines: {node: '>=4.x'} dev: true @@ -13185,7 +13266,7 @@ packages: dev: true /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + resolution: {integrity: sha1-USmAAgNSDUNPFCvHj/PBcIAPK0M=} engines: {node: '>= 6'} dependencies: '@tootallnate/once': 2.0.0 @@ -13320,7 +13401,7 @@ packages: dev: true /image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + resolution: {integrity: sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=} engines: {node: '>=0.10.0'} hasBin: true requiresBuild: true @@ -13852,7 +13933,7 @@ packages: dev: true /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + resolution: {integrity: sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=} engines: {node: '>=8'} dev: true @@ -14286,7 +14367,7 @@ packages: dev: true /js-yaml@4.0.0: - resolution: {integrity: sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==} + resolution: {integrity: sha1-9Ca8D/S0BRkmzViMcRExg0CaEh8=} hasBin: true dependencies: argparse: 2.0.1 @@ -14384,7 +14465,7 @@ packages: dev: true /jsonfile@3.0.1: - resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==} + resolution: {integrity: sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=} optionalDependencies: graceful-fs: 4.2.11 dev: true @@ -14628,6 +14709,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -14637,6 +14719,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -14646,6 +14729,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -14655,6 +14739,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -14664,6 +14749,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -14673,6 +14759,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -14682,6 +14769,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -14691,6 +14779,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -14995,7 +15084,7 @@ packages: dev: true /log-symbols@4.0.0: - resolution: {integrity: sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==} + resolution: {integrity: sha1-abPMRtIPRI7M23XqH6cz2eghySA=} engines: {node: '>=10'} dependencies: chalk: 4.1.2 @@ -15080,8 +15169,8 @@ packages: engines: {node: '>=12'} dev: true - /lucide-react@0.357.0(react@17.0.2): - resolution: {integrity: sha512-ILK6Ye6BMFyXyIHqG8FwMit1XKrj4KocLLLW4fDAAwsFjt6gSL9U6e3sZlbARIOqv0oP5XzLVacHEcb2SxuWkw==} + /lucide-react@0.372.0(react@17.0.2): + resolution: {integrity: sha512-0cKdqmilHXWUwWAWnf6CrrjHD8YaqPMtLrmEHXolZusNTr9epULCsiJwIOHk2q1yFxdEwd96D4zShlAj67UJdA==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: @@ -15101,7 +15190,7 @@ packages: dev: true /make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + resolution: {integrity: sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=} engines: {node: '>=6'} requiresBuild: true dependencies: @@ -16180,7 +16269,7 @@ packages: dev: true /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + resolution: {integrity: sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=} engines: {node: '>=4'} hasBin: true requiresBuild: true @@ -16234,7 +16323,7 @@ packages: dev: true /minimatch@3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + resolution: {integrity: sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=} dependencies: brace-expansion: 1.1.11 dev: true @@ -16370,7 +16459,7 @@ packages: dev: true /mocha@8.4.0: - resolution: {integrity: sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==} + resolution: {integrity: sha1-Z3voi/FZgKPK4Dpz4QoPw5l/DP8=} engines: {node: '>= 10.12.0'} hasBin: true dependencies: @@ -16480,7 +16569,7 @@ packages: dev: true /multipipe@1.0.2: - resolution: {integrity: sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==} + resolution: {integrity: sha1-zBPv2DPJzamfIk+GhGG44aP9k50=} dependencies: duplexer2: 0.1.4 object-assign: 4.1.1 @@ -16499,7 +16588,7 @@ packages: dev: true /nanoid@3.1.20: - resolution: {integrity: sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==} + resolution: {integrity: sha1-utwmPGsdzxS3HvqoX2q0wdbPx4g=} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true @@ -16605,6 +16694,13 @@ packages: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} dev: true + /node-dir@0.1.17: + resolution: {integrity: sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=} + engines: {node: '>= 0.10.5'} + dependencies: + minimatch: 3.1.2 + dev: true + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -16996,7 +17092,7 @@ packages: dev: true /object-keys@0.4.0: - resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==} + resolution: {integrity: sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=} dev: false /object-keys@1.1.1: @@ -17105,7 +17201,7 @@ packages: dev: true /omit.js@2.0.2: - resolution: {integrity: sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==} + resolution: {integrity: sha1-3ZuENvq5R6Xz/yFMslOGMeMT7C8=} dev: true /on-change@4.0.2: @@ -17509,6 +17605,15 @@ packages: engines: {node: '>=0.10.0'} dev: true + /parse-prop-types@0.3.0(prop-types@15.8.1): + resolution: {integrity: sha512-HAvQ2sGc2Y+OLWddBG+KKlxU/F931Vq0GPSqKVaRJb6bUVdkIYxk63mJ/ZwX1VTjZ0h34qrCXE3tmSVUHB1zxQ==} + engines: {node: '>=6'} + peerDependencies: + prop-types: ^15.0.0 + dependencies: + prop-types: 15.8.1 + dev: true + /parse5-htmlparser2-tree-adapter@7.0.0: resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} dependencies: @@ -20372,6 +20477,31 @@ packages: react: 16.14.0 dev: true + /react-docgen-typescript@1.22.0(typescript@3.9.4): + resolution: {integrity: sha1-ACMsjo5H9EN8rBM7h5s+lDcoS+4=} + peerDependencies: + typescript: '>= 3.x' + dependencies: + typescript: 3.9.4 + dev: true + + /react-docgen@5.3.0: + resolution: {integrity: sha1-mqveXmnxmTyLqDn9moZpZQRlRYk=} + engines: {node: '>=8.10.0'} + hasBin: true + dependencies: + '@babel/core': 7.23.2 + '@babel/runtime': 7.23.7 + ast-types: 0.13.4 + commander: 2.20.3 + doctrine: 3.0.0 + neo-async: 2.6.2 + node-dir: 0.1.17 + strip-indent: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /react-dom@16.14.0(react@16.14.0): resolution: {integrity: sha1-etg47Cmnd/s8dcOhkPZhz5Kri4k=} peerDependencies: @@ -20839,7 +20969,7 @@ packages: dev: true /readable-stream@1.0.34: - resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + resolution: {integrity: sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -20868,7 +20998,7 @@ packages: dev: true /readdirp@3.5.0: - resolution: {integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==} + resolution: {integrity: sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 @@ -22342,6 +22472,10 @@ packages: resolution: {integrity: sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=} dev: true + /safe-eval@0.4.1: + resolution: {integrity: sha512-wmiu4RSYVZ690RP1+cv/LxfPK1dIlEN35aW7iv4SMYdqDrHbkll4+NJcHmKm7PbCuI1df1otOcPwgcc2iFR85g==} + dev: true + /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: @@ -22605,7 +22739,7 @@ packages: dev: true /serialize-javascript@5.0.1: - resolution: {integrity: sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==} + resolution: {integrity: sha1-eIbshIBJpGJGepfT2Rjrsqr5NPQ=} dependencies: randombytes: 2.1.0 dev: true @@ -23089,7 +23223,7 @@ packages: dev: true /ssr-window@3.0.0: - resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==} + resolution: {integrity: sha1-/VuCgBY4lD4MxwTEaRgBQ1r3rDc=} dev: true /ssri@4.1.6: @@ -23269,7 +23403,7 @@ packages: dev: true /string_decoder@0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + resolution: {integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=} dev: false /string_decoder@1.1.1: @@ -23634,7 +23768,7 @@ packages: dev: true /swiper@6.5.0: - resolution: {integrity: sha512-cSx1SpfgrHlgwku++3Ce3cjPBpXgB7P+bGik5S3+F+j6ID0NUeV6qtmedFdr3C8jXR/W+TJPVNIT9fH/cwVAiA==} + resolution: {integrity: sha1-TKIkO0T8zvR+4oGZN3ZmYH2MUUE=} engines: {node: '>= 4.7.0'} requiresBuild: true dependencies: @@ -23822,7 +23956,7 @@ packages: engines: {node: '>=12.22'} /through2@0.4.2: - resolution: {integrity: sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==} + resolution: {integrity: sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=} dependencies: readable-stream: 1.0.34 xtend: 2.1.2 @@ -23993,6 +24127,12 @@ packages: engines: {node: '>=12'} dev: false + /ts-polyfill@3.8.2: + resolution: {integrity: sha512-x0M4kx+FObO88sedZ1zld+YX+GvcgaYSVnHspNftI4GRT86FTBy41O89ztKfvue0XtaKpb8WBpPZsh82hy3Ncw==} + dependencies: + core-js: 3.34.0 + dev: true + /ts-toolbelt@9.6.0: resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} dev: true @@ -24019,7 +24159,7 @@ packages: dev: true /tslib@2.3.1: - resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + resolution: {integrity: sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=} dev: false /tslib@2.6.2: @@ -24175,6 +24315,12 @@ packages: typescript: 5.0.4 dev: true + /typescript@3.9.4: + resolution: {integrity: sha1-WqClSQS1G5bf1nhwzi23AlGALxA=} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + /typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -24774,7 +24920,7 @@ packages: dev: true /url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + resolution: {integrity: sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=} dev: true /url-join@5.0.0: @@ -24859,6 +25005,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /user-home@2.0.0: + resolution: {integrity: sha1-nHC/2Babwdy/SGBODwS4tJzenp8=} + engines: {node: '>=0.10.0'} + dependencies: + os-homedir: 1.0.2 + dev: true + /util-deprecate@1.0.2: resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} @@ -25043,6 +25196,15 @@ packages: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} dev: true + /vm2@3.9.19: + resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + acorn: 8.10.0 + acorn-walk: 8.3.2 + dev: true + /walk-up-path@3.0.1: resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} dev: true @@ -25203,7 +25365,7 @@ packages: dev: true /wide-align@1.1.3: - resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} + resolution: {integrity: sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=} dependencies: string-width: 2.1.1 dev: true @@ -25220,7 +25382,7 @@ packages: dev: true /workerpool@6.1.0: - resolution: {integrity: sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==} + resolution: {integrity: sha1-qOA4tMlFaVloUt56jqQiju/es3s=} dev: true /wrap-ansi@7.0.0: @@ -25349,7 +25511,7 @@ packages: dev: true /xtend@2.1.2: - resolution: {integrity: sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==} + resolution: {integrity: sha1-bv7MKk2tjmlixJAbM3znuoe10os=} engines: {node: '>=0.4'} dependencies: object-keys: 0.4.0 @@ -25405,7 +25567,7 @@ packages: dev: true /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + resolution: {integrity: sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=} engines: {node: '>=10'} dev: true @@ -25420,7 +25582,7 @@ packages: dev: true /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + resolution: {integrity: sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=} engines: {node: '>=10'} dependencies: camelcase: 6.3.0