diff --git a/.dumirc.ts b/.dumirc.ts index c526463..151dcc3 100644 --- a/.dumirc.ts +++ b/.dumirc.ts @@ -11,6 +11,7 @@ const pkgDirList = readdirSync(join(__dirname, 'packages')).filter( ); const pkgs = { 'lowcode-i18n-extract': 'lowcode-i18n-extract', + 'lowcode-materails-init': 'lowcode-materails-init', }; export const alias = pkgDirList.reduce((pre, name) => { pre[`@yuntijs/${pkgs[name]}`] = join(__dirname, 'packages', name, 'src'); diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c479d3a..8f5d58d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,3 +54,4 @@ jobs: run: | npm install -g cnpm cnpm sync @yuntijs/lowcode-i18n-extract + cnpm sync @yuntijs/lowcode-materails-init diff --git a/README.md b/README.md index cd3317f..6682de2 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,10 @@ English ・ [简体中文](./README.zh-CN.md) ・ [Report Bug][github-issues-lin ## 📦 Ecosystem -| NAME | REPO | NPM | DOWNLOAD | -| ------------------------------------------------- | ---------------------------------------------------- | -------------------------------------------- | -------------------------- | -| [@yuntijs/lowcode-i18n-extract][i18n-extract-url] | [packages/lowcode-i18n-extract][i18n-extract-github] | [![][i18n-extract-shield]][i18n-extract-url] | ![][i18n-extract-download] | +| NAME | REPO | NPM | DOWNLOAD | +| ----------------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------ | ---------------------------- | +| [@yuntijs/lowcode-i18n-extract][i18n-extract-url] | [packages/lowcode-i18n-extract][i18n-extract-github] | [![][i18n-extract-shield]][i18n-extract-url] | ![][i18n-extract-download] | +| [@yuntijs/lowcode-materails-init][materails-init-url] | [packages/lowcode-materails-init][materails-init-github] | [![][materails-init-shield]][materails-init-url] | ![][materails-init-download] |
@@ -103,5 +104,9 @@ This project is [MIT](./LICENSE) licensed. [i18n-extract-github]: https://github.com/yuntijs/lowcode-tools/tree/master/packages/lowcode-i18n-extract/README.md [i18n-extract-shield]: https://img.shields.io/npm/v/@yuntijs/lowcode-i18n-extract?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square [i18n-extract-url]: https://www.npmjs.com/package/@yuntijs/lowcode-i18n-extract +[materails-init-download]: https://img.shields.io/npm/dt/@yuntijs/lowcode-materails-init?labelColor=black&style=flat-square +[materails-init-github]: https://github.com/yuntijs/lowcode-tools/tree/master/packages/lowcode-materails-init/README.md +[materails-init-shield]: https://img.shields.io/npm/v/@yuntijs/lowcode-materails-init?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square +[materails-init-url]: https://www.npmjs.com/package/@yuntijs/lowcode-materails-init [pr-welcome-link]: https://github.com/yuntijs/lowcode-tools/pulls [pr-welcome-shield]: https://img.shields.io/badge/☁️_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge diff --git a/docs/index.md b/docs/index.md index 4cc820c..0237c5c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -12,4 +12,9 @@ features: title: i18n-extract link: /packages/lowcode-i18n-extract description: 国际化文案提取工具 + + - emoji: 🧩 + title: materials-init + link: /packages/lowcode-materails-init + description: 低码物料自动生成工具 --- diff --git a/package.json b/package.json index de73117..6264171 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "build": "dumi build", "dev": "dumi dev", "dev:i18n-extract": "concurrently \"pnpm --filter 'lowcode-i18n-extract' dev\" \"npm run dev\"", + "dev:materials-init": "concurrently \"pnpm --filter 'lowcode-materails-init' dev\" \"npm run dev\"", "lint": "npm run lint:es && npm run lint:style && npm run lint:md", "lint-fix": "npm run lint-fix:es && npm run lint-fix:style", "lint-fix:es": "eslint \"{docs,packages}/**/*.{js,jsx,ts,tsx}\" --fix", diff --git a/packages/lowcode-materails-init/.changelogrc.js b/packages/lowcode-materails-init/.changelogrc.js new file mode 100644 index 0000000..bbd1fa1 --- /dev/null +++ b/packages/lowcode-materails-init/.changelogrc.js @@ -0,0 +1 @@ +module.exports = require('../../.changelogrc'); diff --git a/packages/lowcode-materails-init/.fatherrc.ts b/packages/lowcode-materails-init/.fatherrc.ts new file mode 100644 index 0000000..cff39b6 --- /dev/null +++ b/packages/lowcode-materails-init/.fatherrc.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'father'; + +export default defineConfig({ + extends: '../../.fatherrc.base.ts', + cjs: { + input: 'src', // 默认编译目录 + platform: 'node', // 默认构建为 Node.js 环境的产物 + transformer: 'esbuild', // 默认使用 esbuild 以获得更快的构建速度 + }, +}); diff --git a/packages/lowcode-materails-init/.gitignore b/packages/lowcode-materails-init/.gitignore new file mode 100644 index 0000000..5104b0b --- /dev/null +++ b/packages/lowcode-materails-init/.gitignore @@ -0,0 +1,3 @@ +node_modules +dist +lowcode diff --git a/packages/lowcode-materails-init/CHANGELOG.md b/packages/lowcode-materails-init/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/lowcode-materails-init/README.md b/packages/lowcode-materails-init/README.md new file mode 100644 index 0000000..68cba10 --- /dev/null +++ b/packages/lowcode-materails-init/README.md @@ -0,0 +1,177 @@ + + +
+ +

Yunti Lowcode Materails Init Tools

+ +🌐 [@yuntijs/lowcode-materails-init](https://www.npmjs.com/package/@yuntijs/lowcode-materails-init) is an lowcode materails init tools for [Low Code Engine Material Protocol Specification](https://lowcode-engine.cn/site/docs/specs/material-spec) inspired by [@alilc/lowcode-material-parser](https://github.com/alibaba/lowcode-engine/tree/main/modules/material-parser). + +English ・ [简体中文](./README.zh-CN.md) ・ [Changelog](./CHANGELOG.md) · [Report Bug][github-issues-link] · [Request Feature][github-issues-link] + + + +[![][npm-release-shield]][npm-release-link] + + + +[![][npm-downloads-shield]][npm-downloads-link] +[![][github-releasedate-shield]][github-releasedate-link] +[![][github-action-test-shield]][github-action-test-link] +[![codecov][codecov-shield]][codecov-link]
+[![][github-action-release-shield]][github-action-release-link] +[![][github-contributors-shield]][github-contributors-link] +[![][github-forks-shield]][github-forks-link] +[![][github-stars-shield]][github-stars-link] +[![][github-issues-shield]][github-issues-link] +[![][github-license-shield]][github-license-link] + + + +
+ +
+Table of contents + +#### TOC + +- [✨ Features](#-features) +- [📦 Installation](#-installation) +- [🌐 Usage](#-usage) +- [⌨️ Local Development](#️-local-development) +- [🤝 Contributing](#-contributing) + +#### + +
+ +## ✨ Features + +- [x] 🚀 Supports parsing components into material descriptions that conform to low code Engine Material Agreement specifications. +- [x] 🚀 Supports configuration to generate a single component material. +- [x] 🚀 Supports the configuration of filtering some components to generate materials. + +## 📦 Installation + +To install @yuntijs/lowcode-materails-init, run the following command: + +```bash +pnpm add @yuntijs/lowcode-materails-init +``` + +
+ +[![][back-to-top]](#readme-top) + +
+ +## 🌐 Usage + +init.mjs + +```mjs +import init from '@yuntijs/lowcode-materails-init'; + +init({ + components: undefined, + skipComponents: ['TreeNode', 'DirectoryTree', 'Item', 'MonacoDiffEditor', 'BaseMonacoEditor'], +}); +``` + +pakage.json + +```json +{ + "scripts": { + "init": "node init.mjs" + } +} +``` + +
+ +[![][back-to-top]](#readme-top) + +
+ +## ⌨️ Local Development + +You can use Github Codespaces for online development: + +[![][codespaces-shield]][codespaces-link] + +Or clone it for local development: + +```bash +git clone https://github.com/yuntijs/lowcode-tools.git +cd lowcode-tools +pnpm install +pnpm dev:materials-init +``` + +
+ +[![][back-to-top]](#readme-top) + +
+ +## 🤝 Contributing + +Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub [Issues][github-issues-link] to get stuck in to show us what you’re made of. + +[![][pr-welcome-shield]][pr-welcome-link] + +[![][contributors-contrib]][contributors-link] + +
+ +[![][back-to-top]](#readme-top) + +
+ +--- + +

📝 License

+ +[![][fossa-license-shield]][fossa-license-link] + +
+ +Copyright © 2024 [YuntiJS][profile-link].
+This project is [MIT](./LICENSE) licensed. + + + + + +[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square +[codecov-link]: https://codecov.io/gh/yuntijs/lowcode-tools +[codecov-shield]: https://img.shields.io/codecov/c/github/yuntijs/lowcode-tools?token=XVQEXR75U4&style=flat-square&logo=Codecov&logoColor=white&labelColor=black&color=4c1 +[codespaces-link]: https://codespaces.new/yuntijs/lowcode-tools +[codespaces-shield]: https://github.com/codespaces/badge.svg +[contributors-contrib]: https://contrib.rocks/image?repo=yuntijs/lowcode-tools +[contributors-link]: https://github.com/yuntijs/lowcode-tools/graphs/contributors +[fossa-license-link]: https://app.fossa.com/projects/git%2Bgithub.com%2Fyuntijs%2Flowcode-tools +[fossa-license-shield]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fyuntijs%2Flowcode-tools.svg?type=large +[github-action-release-link]: https://github.com/actions/workflows/yuntijs/lowcode-tools/release.yml +[github-action-release-shield]: https://img.shields.io/github/actions/workflow/status/yuntijs/lowcode-tools/release.yml?label=release&labelColor=black&logo=semanticrelease&logoColor=white&style=flat-square +[github-action-test-link]: https://github.com/actions/workflows/yuntijs/lowcode-tools/test.yml +[github-action-test-shield]: https://img.shields.io/github/actions/workflow/status/yuntijs/lowcode-tools/test.yml?label=test&labelColor=black&logo=jest&logoColor=white&style=flat-square +[github-contributors-link]: https://github.com/yuntijs/lowcode-tools/graphs/contributors +[github-contributors-shield]: https://img.shields.io/github/contributors/yuntijs/lowcode-tools?color=c4f042&labelColor=black&style=flat-square +[github-forks-link]: https://github.com/yuntijs/lowcode-tools/network/members +[github-forks-shield]: https://img.shields.io/github/forks/yuntijs/lowcode-tools?color=8ae8ff&labelColor=black&style=flat-square +[github-issues-link]: https://github.com/yuntijs/lowcode-tools/issues +[github-issues-shield]: https://img.shields.io/github/issues/yuntijs/lowcode-tools?color=ff80eb&labelColor=black&style=flat-square +[github-license-link]: https://github.com/yuntijs/lowcode-tools/blob/master/LICENSE +[github-license-shield]: https://img.shields.io/github/license/yuntijs/lowcode-tools?color=white&labelColor=black&style=flat-square +[github-releasedate-link]: https://github.com/yuntijs/lowcode-tools/releases +[github-releasedate-shield]: https://img.shields.io/github/release-date/yuntijs/lowcode-tools?labelColor=black&style=flat-square +[github-stars-link]: https://github.com/yuntijs/lowcode-tools/network/stargazers +[github-stars-shield]: https://img.shields.io/github/stars/yuntijs/lowcode-tools?color=ffcb47&labelColor=black&style=flat-square +[npm-downloads-link]: https://www.npmjs.com/package/@yuntijs/lowcode-materails-init +[npm-downloads-shield]: https://img.shields.io/npm/dt/@yuntijs/lowcode-materails-init?labelColor=black&style=flat-square +[npm-release-link]: https://www.npmjs.com/package/@yuntijs/lowcode-materails-init +[npm-release-shield]: https://img.shields.io/npm/v/@yuntijs/lowcode-materails-init?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square +[pr-welcome-link]: https://github.com/yuntijs/lowcode-tools/pulls +[pr-welcome-shield]: https://img.shields.io/badge/☁️_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge +[profile-link]: https://github.com/yuntijs diff --git a/packages/lowcode-materails-init/demo/index.mjs b/packages/lowcode-materails-init/demo/index.mjs new file mode 100644 index 0000000..70413b8 --- /dev/null +++ b/packages/lowcode-materails-init/demo/index.mjs @@ -0,0 +1,7 @@ +import init from '../src/index.mjs' + +init({ + entryPath: "demo/index.tsx", + components: undefined, + skipComponents: ['TreeNode', 'DirectoryTree', 'Item', 'MonacoDiffEditor', 'BaseMonacoEditor'], +}) \ No newline at end of file diff --git a/packages/lowcode-materails-init/demo/index.tsx b/packages/lowcode-materails-init/demo/index.tsx new file mode 100644 index 0000000..99c5a4f --- /dev/null +++ b/packages/lowcode-materails-init/demo/index.tsx @@ -0,0 +1 @@ +export * from '@yuntijs/ui'; diff --git a/packages/lowcode-materails-init/index.md b/packages/lowcode-materails-init/index.md new file mode 100644 index 0000000..e7dd8fc --- /dev/null +++ b/packages/lowcode-materails-init/index.md @@ -0,0 +1,69 @@ +--- +title: materials-init +order: 0 +--- + + + +
+ +

Yunti Lowcode Materials Init Tools

+ +🌐 [@yuntijs/lowcode-materails-init](https://www.npmjs.com/package/@yuntijs/lowcode-materails-init) is an lowcode materails init tools for [Low Code Engine Material Protocol Specification](https://lowcode-engine.cn/site/docs/specs/material-spec) inspired by [@alilc/lowcode-material-parser](https://github.com/alibaba/lowcode-engine/tree/main/modules/material-parser). + +
+ +## 📦 Installation + +To install @yuntijs/lowcode-materails-init, run the following command: + +```bash +pnpm add @yuntijs/lowcode-materails-init +``` + +## 🌐 Usage + +init.mjs + +```mjs +import init from '@yuntijs/lowcode-materails-init'; + +init({ + components: undefined, + skipComponents: ['TreeNode', 'DirectoryTree', 'Item', 'MonacoDiffEditor', 'BaseMonacoEditor'], +}); +``` + +pakage.json + +```json +{ + "scripts": { + "init": "node init.mjs" + } +} +``` + +## 🤝 API + +### `init(options)` + +#### `options` + +| name | Description | Type | Default | Version | +| :------------- | :------------------------------ | :-------- | :-------------- | :------ | +| rootDir | Entry file root path | string | '' | - | +| entryPath | Relative path of the entry file | string | "src/index.tsx" | - | +| components | Parsed components only | string\[] | - | - | +| skipComponents | Unparsed components | string\[] | \[] | - | +| lowcodeDir | Generate folder name | string | 'lowcode' | - | +| metaFormat | Generated file type | string | ts | - | +| devAlias | Generate filename suffix | string | '' | - | + +
+ +[![][back-to-top]](#readme-top) + +
+ +[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square diff --git a/packages/lowcode-materails-init/package.json b/packages/lowcode-materails-init/package.json new file mode 100644 index 0000000..9567bf0 --- /dev/null +++ b/packages/lowcode-materails-init/package.json @@ -0,0 +1,51 @@ +{ + "name": "@yuntijs/lowcode-materails-init", + "version": "0.0.1", + "description": "lowcode materails init tools for components", + "keywords": [ + "yuntijs", + "lowcode", + "low-code", + "low-code engine", + "low-code materails", + "materails" + ], + "homepage": "https://yuntijs.github.io/lowcode-tools/packages/lowcode-materails-init", + "bugs": { + "url": "https://github.com/yuntijs/lowcode-tools/issues/new" + }, + "repository": { + "type": "git", + "url": "https://github.com/yuntijs/lowcode-tools.git" + }, + "license": "MIT", + "main": "dist/cjs/index.js", + "module": "dist/es/index.js", + "types": "dist/es/index.d.ts", + "files": [ + "dist", + "compiled" + ], + "scripts": { + "build": "father build", + "build:deps": "father prebundle", + "demo": "node demo/index.mjs", + "dev": "cross-env NODE_ENV=development father dev", + "prepublishOnly": "father doctor && npm run build", + "test": "node demo/index.mjs" + }, + "dependencies": { + "@alilc/lowcode-material-parser": "^1.0.3", + "@alilc/lowcode-types": "^1.3.1", + "@types/react": "^18.2.79" + }, + "devDependencies": { + "@types/fs-extra": "^11.0.4", + "antd": "^5.15.2", + "fs-extra": "^11.2.0" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org" + } +} diff --git a/packages/lowcode-materails-init/src/files.mjs b/packages/lowcode-materails-init/src/files.mjs new file mode 100644 index 0000000..90ac397 --- /dev/null +++ b/packages/lowcode-materails-init/src/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/lowcode-materails-init/src/index.mjs b/packages/lowcode-materails-init/src/index.mjs new file mode 100644 index 0000000..aa4ba29 --- /dev/null +++ b/packages/lowcode-materails-init/src/index.mjs @@ -0,0 +1,76 @@ + +import { getEntry, formatComponentSchema, resolvePkgJson, parseNpmName } 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() + const PARSED_NPM_NAME = parseNpmName(packageInfo.name); + 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}) + +} + +export default init diff --git a/packages/lowcode-materails-init/src/parseProps.mjs b/packages/lowcode-materails-init/src/parseProps.mjs new file mode 100644 index 0000000..f407818 --- /dev/null +++ b/packages/lowcode-materails-init/src/parseProps.mjs @@ -0,0 +1,266 @@ +const propConfigToFieldConfig = (propConfig) => { + const { name, description } = propConfig; + const title = { + label: { + type: 'i18n', + 'en-US': name, + 'zh-CN': 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?.type === 'func' || propType === 'any')) { + if (supportedEvents) { + const paramsStr = propType?.params?.map(item => item.name)?.join(",") + const templateStr = name+"("+ (propType?.params?.length > 0 ? paramsStr + ',': '') +"${extParams}){ \nconsole.log('"+name+ (propType?.params?.length > 0 ? ',' + paramsStr : '') +");}" + supportedEvents.push({ + name, + description: description || name, + template: templateStr + }); + 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/lowcode-materails-init/src/utils.mjs b/packages/lowcode-materails-init/src/utils.mjs new file mode 100644 index 0000000..3ce4b34 --- /dev/null +++ b/packages/lowcode-materails-init/src/utils.mjs @@ -0,0 +1,120 @@ +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(); +} + +export const parseNpmName = (npmName) => { + if (typeof npmName !== 'string') { + throw new TypeError('Expected a string'); + } + const matched = + npmName.charAt(0) === '@' ? /(@[^\/]+)\/(.+)/g.exec(npmName) : [npmName, '', npmName]; + if (!matched) { + throw new Error(`[parse-package-name] "${npmName}" is not a valid string`); + } + const scope = matched[1]; + const name = (matched[2] || '').replace(/\s+/g, '').replace(/[\-_]+([^\-_])/g, ($0, $1) => { + return $1.toUpperCase(); + }); + const uniqueName = + (matched[1] + ? matched[1].charAt(1).toUpperCase() + + matched[1].slice(2).replace(/[\-_]+([^\-_])/g, ($0, $1) => { + return $1.toUpperCase(); + }) + : '') + + name.charAt(0).toUpperCase() + + name.slice(1); + return { + scope, + name, + uniqueName, + }; +} \ No newline at end of file diff --git a/packages/lowcode-materails-init/tsconfig.json b/packages/lowcode-materails-init/tsconfig.json new file mode 100644 index 0000000..efc6464 --- /dev/null +++ b/packages/lowcode-materails-init/tsconfig.json @@ -0,0 +1,29 @@ +{ + "buildOnSave": false, + "compileOnSave": false, + "compilerOptions": { + "baseUrl": ".", + "declaration": true, + "outDir": "build", + "module": "esnext", + "target": "es6", + "jsx": "react", + "moduleResolution": "node", + "lib": ["es6", "dom"], + "paths": { + "@yuntijs/lowcode-materails-init": ["src"], + "@yuntijs/lowcode-materails-init/*": ["src/*"] + }, + "sourceMap": true, + "allowJs": true, + "noUnusedLocals": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "noImplicitAny": true, + "skipLibCheck": true, + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true + }, + "exclude": ["node_modules", "build", "public", "lowcode"], + "include": ["src/*.ts", "src/*.tsx", "demo/*.tsx"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b38f21c..5b00fc2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -124,6 +124,28 @@ importers: specifier: ^4 version: 4.17.21 + packages/lowcode-materails-init: + dependencies: + '@alilc/lowcode-material-parser': + specifier: ^1.0.3 + version: 1.0.3 + '@alilc/lowcode-types': + specifier: ^1.3.1 + version: 1.3.1 + '@types/react': + specifier: ^18.2.79 + version: 18.2.79 + devDependencies: + '@types/fs-extra': + specifier: ^11.0.4 + version: 11.0.4 + antd: + specifier: ^5.15.2 + version: 5.15.2(react-dom@17.0.2)(react@17.0.2) + fs-extra: + specifier: ^11.2.0 + version: 11.2.0 + packages: /@aashutoshrathi/word-wrap@1.2.6: @@ -166,6 +188,30 @@ packages: tslib: 2.6.2 dev: false + /@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: false + /@alilc/lowcode-plugin-base-monaco-editor@1.1.2(monaco-editor@0.47.0): resolution: {integrity: sha512-ZEq08Zj4gLQgFzoU3T6xQITv6nyF/KlUJ1cVZ4RzdgYho4iQqUyoOUY0g+YIGc8Lre9yIVwnfLv2gSf2K61TCw==} dependencies: @@ -659,13 +705,13 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 + dev: false /@babel/runtime@7.24.0: resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 - dev: true /@babel/template@7.23.9: resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} @@ -2234,7 +2280,7 @@ packages: peerDependencies: react: '>=16.3.0' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.24.0 hoist-non-react-statics: 3.3.2 react: 17.0.2 react-is: 16.13.1 @@ -2246,7 +2292,7 @@ packages: peerDependencies: react: '>=16.3.0' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.24.0 hoist-non-react-statics: 3.3.2 react: 18.1.0 react-is: 16.13.1 @@ -2290,7 +2336,7 @@ packages: immer: 10.0.4 leva: 0.9.35(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@17.0.2)(react@17.0.2) lodash-es: 4.17.21 - lucide-react: 0.358.0(react@17.0.2) + lucide-react: 0.373.0(react@17.0.2) polished: 4.3.1 prism-react-renderer: 2.3.1(react@17.0.2) query-string: 9.0.0 @@ -2332,7 +2378,7 @@ packages: /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 @@ -2341,7 +2387,7 @@ packages: /@manypkg/get-packages@1.1.3: resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -2458,7 +2504,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 @@ -2516,7 +2562,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 @@ -2541,7 +2587,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 @@ -2604,7 +2650,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: @@ -2684,7 +2730,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 @@ -3236,9 +3282,9 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.9 - classnames: 2.3.2 - rc-util: 5.38.2(react-dom@17.0.2)(react@17.0.2) + '@babel/runtime': 7.24.0 + classnames: 2.5.1 + rc-util: 5.39.1(react-dom@17.0.2)(react@17.0.2) react: 17.0.2 react-dom: 17.0.2(react@17.0.2) dev: true @@ -3266,12 +3312,12 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 '@rc-component/portal': 1.1.2(react-dom@17.0.2)(react@17.0.2) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@17.0.2)(react@17.0.2) rc-resize-observer: 1.4.0(react-dom@17.0.2)(react@17.0.2) - rc-util: 5.38.2(react-dom@17.0.2)(react@17.0.2) + rc-util: 5.39.1(react-dom@17.0.2)(react@17.0.2) react: 17.0.2 react-dom: 17.0.2(react@17.0.2) dev: true @@ -3671,7 +3717,7 @@ packages: postcss: '>=7.0.0' postcss-syntax: '>=0.36.2' dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.9 postcss: 8.4.35 postcss-syntax: 0.36.2(postcss-less@6.0.0)(postcss@8.4.35) transitivePeerDependencies: @@ -3847,6 +3893,7 @@ packages: engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3856,6 +3903,7 @@ packages: engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -3865,6 +3913,7 @@ packages: engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -3874,6 +3923,7 @@ packages: engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -3928,12 +3978,12 @@ packages: dev: true /@tootallnate/once@1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + resolution: {integrity: sha1-zLkURTYBeaBOf+av94wA/8Hur4I=} engines: {node: '>= 6'} dev: true /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + resolution: {integrity: sha1-9UShSNOrNYAcH2M6dEH9h8LkhL8=} engines: {node: '>= 10'} dev: true @@ -4054,6 +4104,13 @@ packages: '@types/node': 20.11.19 dev: true + /@types/fs-extra@11.0.4: + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 20.11.19 + dev: true + /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: @@ -4208,7 +4265,6 @@ packages: /@types/prop-types@15.7.11: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} - dev: true /@types/q@1.5.8: resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==} @@ -4234,6 +4290,13 @@ packages: csstype: 3.1.3 dev: true + /@types/react@18.2.79: + resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==} + dependencies: + '@types/prop-types': 15.7.11 + csstype: 3.1.3 + dev: false + /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: @@ -4748,6 +4811,7 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -4757,6 +4821,7 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -4766,6 +4831,7 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -4775,6 +4841,7 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -4815,7 +4882,7 @@ packages: /@umijs/history@5.3.1: resolution: {integrity: sha512-/e0cEGrR2bIWQD7pRl3dl9dcyRGeC9hoW0OCvUTT/hjY0EfUrkd6G8ZanVghPMpDuY5usxq9GVcvrT8KNXLWvA==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.24.0 query-string: 6.14.1 dev: true @@ -5178,11 +5245,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 /@yuntijs/lint@1.5.1(@octokit/core@3.6.0)(eslint@8.56.0)(jest@27.5.1)(postcss@8.4.35)(prettier@3.2.5)(semantic-release@21.1.2)(stylelint@15.11.0)(typescript@5.3.3): @@ -5290,7 +5357,7 @@ packages: antd-style: 3.6.1(@types/react@17.0.75)(antd@5.15.2)(react-dom@17.0.2)(react@17.0.2) leva: 0.9.35(@types/react-dom@17.0.25)(@types/react@17.0.75)(react-dom@17.0.2)(react@17.0.2) lodash-es: 4.17.21 - lucide-react: 0.358.0(react@17.0.2) + lucide-react: 0.373.0(react@17.0.2) query-string: 8.2.0 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) @@ -5346,17 +5413,16 @@ packages: dev: true /acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + resolution: {integrity: sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=} engines: {node: '>=0.4.0'} dev: true /acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - dev: true /acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + resolution: {integrity: sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -5365,7 +5431,6 @@ packages: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /adverb-where@0.2.6: resolution: {integrity: sha512-uVazUDEPYpBSVRjEDTzO6hVXh9X/eQb+gobzDpqdzMiM1MkfGxfPtgN8YerBjAeDkoABZprsOwhSZnY4X3knnw==} @@ -5380,7 +5445,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 @@ -5463,7 +5528,6 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -5640,6 +5704,10 @@ packages: - moment dev: true + /any-base@1.1.0: + resolution: {integrity: sha1-rhAaYrwIpZe0yatbcInUVmMFSf4=} + dev: false + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -5816,6 +5884,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /ast-types@0.13.4: + resolution: {integrity: sha1-7g13s0MmOWXsw/ti2hbnIisrZ4I=} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.2 + dev: false + /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -6056,7 +6131,6 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /balanced-match@2.0.0: resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} @@ -6146,7 +6220,6 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -6257,7 +6330,7 @@ packages: dev: true /buffer-from@0.1.2: - resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==} + resolution: {integrity: sha1-FfS5vO8BIETfMRQsFDM8r24CYNA=} dev: true /buffer-from@1.1.2: @@ -6503,7 +6576,7 @@ packages: dev: true /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + resolution: {integrity: sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=} engines: {node: '>=6.0'} dev: true @@ -6778,7 +6851,6 @@ packages: /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} @@ -6786,7 +6858,7 @@ packages: dev: true /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + resolution: {integrity: sha1-SDfqGy2me5xhamevuw+v7lZ7ymY=} engines: {node: '>= 12'} dev: true @@ -6826,7 +6898,6 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /concat-stream@1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} @@ -7046,7 +7117,6 @@ packages: /core-js@3.34.0: resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} requiresBuild: true - dev: true /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -7148,13 +7218,19 @@ 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: false + /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 which: 1.3.1 - dev: true /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -7210,7 +7286,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 @@ -7368,7 +7444,6 @@ packages: /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - dev: true /current-script-polyfill@1.0.0: resolution: {integrity: sha512-qv8s+G47V6Hq+g2kRE5th+ASzzrL7b6l+tap1DHKK25ZQJv3yIFhH96XaQ7NGL+zRW3t/RDbweJf/dJDe5Z5KA==} @@ -7416,7 +7491,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 dev: true /dateformat@3.0.3: @@ -7428,7 +7503,7 @@ packages: dev: true /debug@3.1.0: - resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + resolution: {integrity: sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -7574,7 +7649,7 @@ packages: resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} engines: {node: '>=10'} dependencies: - globby: 11.0.4 + globby: 11.1.0 graceful-fs: 4.2.11 is-glob: 4.0.3 is-path-cwd: 2.2.0 @@ -7683,7 +7758,6 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dev: true /dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} @@ -8052,7 +8126,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: @@ -8696,7 +8770,6 @@ packages: /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - dev: true /eventemitter3@2.0.3: resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==} @@ -8843,7 +8916,6 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} @@ -8869,7 +8941,6 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -9048,6 +9119,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: false + /find-file-up@0.1.3: resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==} engines: {node: '>=0.10.0'} @@ -9263,7 +9341,7 @@ packages: 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 @@ -9271,7 +9349,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 @@ -9280,13 +9358,12 @@ 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 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true /fs-monkey@1.0.5: resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} @@ -9515,7 +9592,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: @@ -9693,7 +9770,6 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -9994,7 +10070,7 @@ packages: /history@5.3.0: resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.24.0 dev: true /hmac-drbg@1.0.1: @@ -10181,7 +10257,7 @@ packages: dev: true /http-proxy-agent@2.1.0: - resolution: {integrity: sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==} + resolution: {integrity: sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=} engines: {node: '>= 4.5.0'} dependencies: agent-base: 4.3.0 @@ -10191,7 +10267,7 @@ packages: dev: true /http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + resolution: {integrity: sha1-ioyO9/WTLM+VPClsqCkblap0qjo=} engines: {node: '>= 6'} dependencies: '@tootallnate/once': 1.1.2 @@ -10202,7 +10278,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 @@ -10227,7 +10303,7 @@ packages: dev: true /https-proxy-agent@2.2.4: - resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==} + resolution: {integrity: sha1-TuenN6vZJniik9mzShr00NCMeHs=} engines: {node: '>= 4.5.0'} dependencies: agent-base: 4.3.0 @@ -10336,7 +10412,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 @@ -10966,7 +11042,6 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true /isobject@2.1.0: resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} @@ -11712,7 +11787,6 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -11750,19 +11824,18 @@ packages: hasBin: true /jsonfile@3.0.1: - resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==} + resolution: {integrity: sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=} optionalDependencies: graceful-fs: 4.2.11 dev: true /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} optionalDependencies: graceful-fs: 4.2.11 - dev: true /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + resolution: {integrity: sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=} dependencies: universalify: 2.0.1 optionalDependencies: @@ -11945,6 +12018,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -11954,6 +12028,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -11963,6 +12038,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -11972,6 +12048,7 @@ packages: engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true @@ -12237,7 +12314,6 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true /log-symbols@2.2.0: resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} @@ -12288,7 +12364,6 @@ packages: dependencies: pseudomap: 1.0.2 yallist: 2.1.2 - dev: true /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -12307,8 +12382,8 @@ packages: engines: {node: '>=12'} dev: true - /lucide-react@0.358.0(react@17.0.2): - resolution: {integrity: sha512-rBSptRjZTMBm24zsFhR6pK/NgbT18JegZGKcH4+1H3+UigMSRpeoWLtR/fAwMYwYnlJOZB+y8WpeHne9D6X6Kg==} + /lucide-react@0.373.0(react@17.0.2): + resolution: {integrity: sha512-0kygFhk/DmK4mi+zf1t5mNStJQGaElACZdDdLiHOHFJzi7g3maC3SR86AcaUsxvDkZPId3XCd4vRngnjkPHu3Q==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: @@ -12328,7 +12403,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: @@ -13285,7 +13360,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 @@ -13293,7 +13368,7 @@ packages: optional: true /mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + resolution: {integrity: sha1-s3RVDco6DBhEOwyVCmpY8ZMc96c=} engines: {node: '>=10.0.0'} hasBin: true dev: true @@ -13328,7 +13403,6 @@ packages: /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - dev: true /minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -13342,7 +13416,6 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - dev: true /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} @@ -13487,7 +13560,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 @@ -13532,7 +13605,6 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true /nerf-dart@1.0.0: resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} @@ -13558,6 +13630,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: false + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -13927,7 +14006,7 @@ packages: dev: true /object-keys@0.4.0: - resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==} + resolution: {integrity: sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=} dev: true /object-keys@1.1.1: @@ -14113,7 +14192,6 @@ packages: /os-homedir@1.0.2: resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} engines: {node: '>=0.10.0'} - dev: true /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} @@ -14138,7 +14216,7 @@ packages: dev: true /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + resolution: {integrity: sha1-GxRyVirnoPdC8PPT03GOpm/5wJw=} engines: {node: '>=8'} dependencies: p-map: 2.1.0 @@ -14225,12 +14303,12 @@ packages: dev: true /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + resolution: {integrity: sha1-MQko/u+cnsxltosXaTAYpmXOoXU=} engines: {node: '>=6'} dev: true /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + resolution: {integrity: sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=} engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 @@ -14419,6 +14497,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: false + /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true @@ -15318,7 +15405,6 @@ packages: /pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - dev: true /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} @@ -15371,7 +15457,6 @@ packages: /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - dev: true /q@1.5.1: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} @@ -15565,10 +15650,10 @@ packages: react: '>=16.11.0' react-dom: '>=16.11.0' dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 '@rc-component/trigger': 1.18.3(react-dom@17.0.2)(react@17.0.2) - classnames: 2.3.2 - rc-util: 5.38.2(react-dom@17.0.2)(react@17.0.2) + classnames: 2.5.1 + rc-util: 5.39.1(react-dom@17.0.2)(react@17.0.2) react: 17.0.2 react-dom: 17.0.2(react@17.0.2) dev: true @@ -15680,12 +15765,12 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 '@rc-component/trigger': 1.18.3(react-dom@17.0.2)(react@17.0.2) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.0(react-dom@17.0.2)(react@17.0.2) rc-overflow: 1.3.2(react-dom@17.0.2)(react@17.0.2) - rc-util: 5.38.2(react-dom@17.0.2)(react@17.0.2) + rc-util: 5.39.1(react-dom@17.0.2)(react@17.0.2) react: 17.0.2 react-dom: 17.0.2(react@17.0.2) dev: true @@ -15712,7 +15797,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 classnames: 2.3.2 rc-util: 5.38.2(react-dom@17.0.2)(react@17.0.2) react: 17.0.2 @@ -15740,10 +15825,10 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.9 - classnames: 2.3.2 + '@babel/runtime': 7.24.0 + classnames: 2.5.1 rc-resize-observer: 1.4.0(react-dom@17.0.2)(react@17.0.2) - rc-util: 5.38.2(react-dom@17.0.2)(react@17.0.2) + rc-util: 5.39.1(react-dom@17.0.2)(react@17.0.2) react: 17.0.2 react-dom: 17.0.2(react@17.0.2) dev: true @@ -15825,9 +15910,9 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.9 - classnames: 2.3.2 - rc-util: 5.38.2(react-dom@17.0.2)(react@17.0.2) + '@babel/runtime': 7.24.0 + classnames: 2.5.1 + rc-util: 5.39.1(react-dom@17.0.2)(react@17.0.2) react: 17.0.2 react-dom: 17.0.2(react@17.0.2) resize-observer-polyfill: 1.5.1 @@ -15930,7 +16015,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 classnames: 2.3.2 rc-dropdown: 4.1.0(react-dom@17.0.2)(react@17.0.2) rc-menu: 9.12.4(react-dom@17.0.2)(react@17.0.2) @@ -16009,7 +16094,7 @@ packages: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 classnames: 2.3.2 rc-motion: 2.9.0(react-dom@17.0.2)(react@17.0.2) rc-util: 5.38.2(react-dom@17.0.2)(react@17.0.2) @@ -16037,7 +16122,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) react-is: 18.2.0 @@ -16062,10 +16147,10 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.23.9 - classnames: 2.3.2 + '@babel/runtime': 7.24.0 + classnames: 2.5.1 rc-resize-observer: 1.4.0(react-dom@17.0.2)(react@17.0.2) - rc-util: 5.38.2(react-dom@17.0.2)(react@17.0.2) + rc-util: 5.39.1(react-dom@17.0.2)(react@17.0.2) react: 17.0.2 react-dom: 17.0.2(react@17.0.2) dev: true @@ -16121,6 +16206,31 @@ packages: react: 17.0.2 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: false + + /react-docgen@5.3.0: + resolution: {integrity: sha1-mqveXmnxmTyLqDn9moZpZQRlRYk=} + engines: {node: '>=8.10.0'} + hasBin: true + dependencies: + '@babel/core': 7.23.9 + '@babel/runtime': 7.24.0 + 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: false + /react-dom@17.0.2(react@17.0.2): resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} peerDependencies: @@ -16171,7 +16281,7 @@ packages: peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 react: 17.0.2 dev: true @@ -16189,7 +16299,7 @@ packages: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.24.0 invariant: 2.2.4 prop-types: 15.8.1 react: 17.0.2 @@ -16204,7 +16314,7 @@ packages: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.24.0 invariant: 2.2.4 prop-types: 15.8.1 react: 18.1.0 @@ -16462,7 +16572,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 @@ -17846,6 +17956,10 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true + /safe-eval@0.4.1: + resolution: {integrity: sha512-wmiu4RSYVZ690RP1+cv/LxfPK1dIlEN35aW7iv4SMYdqDrHbkll4+NJcHmKm7PbCuI1df1otOcPwgcc2iFR85g==} + dev: false + /safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -18151,7 +18265,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 - dev: true /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -18163,7 +18276,6 @@ packages: /shebang-regex@1.0.0: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} engines: {node: '>=0.10.0'} - dev: true /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} @@ -18184,6 +18296,13 @@ packages: shikiji-core: 0.10.2 dev: true + /short-uuid@3.1.1: + resolution: {integrity: sha512-7dI69xtJYpTIbg44R6JSgrbDtZFuZ9vAwwmnF/L0PinykbFrhQ7V8omKsQcVw1TP0nYJ7uQp1PN6/aVMkzQFGQ==} + dependencies: + any-base: 1.1.0 + uuid: 3.4.0 + dev: false + /shortid@2.2.16: resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -18659,7 +18778,7 @@ packages: dev: true /string_decoder@0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + resolution: {integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=} dev: true /string_decoder@1.1.1: @@ -18739,7 +18858,6 @@ packages: engines: {node: '>=8'} dependencies: min-indent: 1.0.1 - dev: true /strip-indent@4.0.0: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} @@ -19208,7 +19326,7 @@ packages: dev: true /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 @@ -19396,6 +19514,12 @@ packages: yn: 3.1.1 dev: true + /ts-polyfill@3.8.2: + resolution: {integrity: sha512-x0M4kx+FObO88sedZ1zld+YX+GvcgaYSVnHspNftI4GRT86FTBy41O89ztKfvue0XtaKpb8WBpPZsh82hy3Ncw==} + dependencies: + core-js: 3.34.0 + dev: false + /ts-toolbelt@9.6.0: resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} dev: true @@ -19418,11 +19542,11 @@ packages: dev: true /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + resolution: {integrity: sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=} dev: true /tslib@2.3.1: - resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + resolution: {integrity: sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=} dev: true /tslib@2.5.0: @@ -19597,6 +19721,12 @@ packages: typescript: 5.3.3 dev: true + /typescript@3.9.4: + resolution: {integrity: sha1-WqClSQS1G5bf1nhwzi23AlGALxA=} + engines: {node: '>=4.2.0'} + hasBin: true + dev: false + /typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} @@ -19964,12 +20094,11 @@ packages: dev: true /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + resolution: {integrity: sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=} engines: {node: '>= 4.0.0'} - dev: true /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + resolution: {integrity: sha1-ZFF2BWb6hXU0dFqx3elS0bF2G+A=} engines: {node: '>= 4.0.0'} dev: true @@ -20037,10 +20166,9 @@ packages: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 - 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: @@ -20098,6 +20226,13 @@ packages: react: 17.0.2 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: false + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true @@ -20127,6 +20262,12 @@ packages: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} dev: true + /uuid@3.4.0: + resolution: {integrity: sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: false + /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -20296,6 +20437,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.11.3 + acorn-walk: 8.3.2 + dev: false + /w3c-hr-time@1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} deprecated: Use your platform's native performance.now() and performance.timeOrigin. @@ -20485,7 +20635,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -20631,7 +20780,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 @@ -20657,7 +20806,6 @@ packages: /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - dev: true /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -20718,7 +20866,7 @@ packages: dev: true /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + resolution: {integrity: sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A=} engines: {node: '>=6'} dev: true